Qmake in windows?
-
I've tried my best to get qmake to work in both windows and mac but nothing worked. Unfortunately, qt has no installation steps for qmake. This is what I did
First, I installed qt (no problems). It seems that qt doesn't include the path of the proper bin folder in environment variables in windows, so I did include that however I'm not sure which the proper folder to get qmake to work. qmake.exe appears in many folders and one of them is
C:\Qt\5.1.1\msvc2010\bin
After adding it, Visual Studio command prompt recognizes qmake command. So far so good. The next step I did follow qmake tutorial and I did the following
I've created four files
hello.cpp
hello.h
main.cpp
hello.promain.cpp
@#include "hello.h"int main()
{
print();
return 0;
}@hello.cpp
@#include <iostream>
#include "hello.h"void print()
{
std::cout << "QMake!" << std::endl;
}@hello.h
@#ifndef HELLO_H
#define HELLO_Hvoid print();
#endif@
hello.pro
@CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp@I opened visual studio command prompt and I typed (as the documentation says)
qmake -o Makefile hello.pro
This line created the following files
debug folder
release folder
Makefile
Makefile.debug
Makefile.ReleaseNow, I invoked nmake to create the executable file
nmake
@Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved."c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe" -
f Makefile.Debug
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc
-DUNICODE -DWIN32 -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_A
NGLE -I"........\Qt\5.1.1\msvc2010\include" -I"........\Qt\5.1.1\msvc2010
include\QtGui" -I"........\Qt\5.1.1\msvc2010\include\QtANGLE" -I"........
Qt\5.1.1\msvc2010\include\QtCore" -I"debug" -I"........\Qt\5.1.1\msvc2010\mks
pecs\win32-msvc2010" -Fodebug\ @C:\Users\CroCo\AppData\Local\Temp\nmDBB0.tmp
hello.cpp
main.cpp
Generating Code...
echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID / 24 / RT_MANIFEST / "de
bug\hello.exe.embed.manifest">debug\hello.exe_manifest.rc
if not exist debug\hello.exe if exist debug\hello.exe.embed.manifest del
debug\hello.exe.embed.manifest
if exist debug\hello.exe.embed.manifest copy /Y debug\hello.exe.embed.ma
nifest debug\hello.exe_manifest.bak
link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFEST
DEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.
0' publicKeyToken='6595b64144ccf1df' language='' processorArchitecture='*'" /MA
NIFEST /MANIFESTFILE:debug\hello.exe.embed.manifest /OUT:debug\hello.exe @C:\Use
rs\CroCo\AppData\Local\Temp\nmE255.tmp
if exist debug\hello.exe_manifest.bak fc /b debug\hello.exe.embed.manife
st debug\hello.exe_manifest.bak >NUL || del debug\hello.exe_manifest.bak
if not exist debug\hello.exe_manifest.bak rc.exe /fodebug\hello.exe_mani
fest.res debug\hello.exe_manifest.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
Copyright (C) Microsoft Corporation. All rights reserved.if not exist debug\hello.exe_manifest.bak link /NOLOGO /DYNAMICBASE /NXC
OMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsof
t.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' l
anguage='' processorArchitecture=''" /MANIFEST /MANIFESTFILE:debug\hello.exe.e
mbed.manifest /OUT:debug\hello.exe @C:\Users\CroCo\AppData\Local\Temp\nmE7C2.tmpif exist debug\hello.exe_manifest.bak del debug\hello.exe_manifest.bak
@
in debug folder there is hello.exe but the problem it doesn't work. Every time I run it nothing happens.
What I'm missing here?
-
Hi and welcome to devnet,
On Windows, you should rather use Qt Creator to get started. Command line work like that is not especially user/developer friendly on that platform.
-
Hi SGalst, thanks for being informative and helpful. I found the problem it was in hello.pro. The setting in qmake tutorial in the documentation was very poor and messed up. I was following the documentation literally and no luck until I opened the Qt creator to see the proper setting for the source project. once I pasted them, qmake generated the proper files.
Why I'm using qmake? It is a good question. I want to read the entire documentation and understand them properly. I'm doing my graduate study, so I want to make qt my choice to build my projects.
Thanks again. -
You're welcome
QtCreator also uses qmake but like I said Windows is not really designed for command line development especially if you're starting there. You should rather use Linux/OS X for that. If not installed on the machine, in a virtual one it'll be fine. If you plan going cross-platform (including embedded/mobile) you should really consider using a unix like OS since most of the available platforms are running on them and also most of the tools are already natively available.
Don't get me wrong, I don't say that you can't do it on Windows, but you should rather use Creator if you're starting, in order to get to the interesting stuff faster. If you really want to go low level, then *nix is IMHO a better choice.