由于用VS2008+Qt速度有点慢,特别是编译运行的时候要等半天,所以再装了个Qt Creator,用的是Qt SDK-2010.05。
但在Qt Creator编译运行时出现了错误,如下所示:
Running build steps for project calculatorform...
Configuration unchanged, skipping qmake step.
Starting: "E:/Qt.SDK/2010.05/bin/jom.exe"
E:\Qt.SDK\2010.05\bin\jom.exe -nologo -j 2 -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\include\QtCore" -I"..\..\..\include\QtGui" -I"..\..\..\include" -I"..\..\..\include\ActiveQt" -I"debug" -I"." -I"..\calculatorform" -I"." -I"..\..\..\mkspecs\win32-msvc2008" -Fodebug\ @D:\QQPCmgr\Temp\calculatorform.obj.4820.188.jom
'cl' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\include\QtCore" -I"..\..\..\include\QtGui" -I"..\..\..\include" -I"..\..\..\include\ActiveQt" -I"debug" -I"." -I"..\calculatorform" -I"." -I"..\..\..\mkspecs\win32-msvc2008" -Fodebug\ @D:\QQPCmgr\Temp\main.obj.4820.282.jom
command failed with exit code 9009
'cl' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
command failed with exit code 9009
jom 0.9.4 - empower your cores
command failed with exit code 2
The process "E:/Qt.SDK/2010.05/bin/jom.exe" exited with code %2.
Error while building project calculatorform (target: Desktop)
When executing build step 'Make'
经过分析,从上面的错误信息中,还是找到点原因的。
从上面可以看到,编译运行程序时,Qt Creator用到了win32-msvc2008,但这是vs2008用来编译Qt程序的,那Qt Creator怎么会用到它了呢?
这是因为在建立vs2008+QT环境时,设置了环境变量:D:\Qt\4.7.3\bin,而在Qt Creator中它会自动检测到这个环境变量并默认使用它,如下图所示:
找到原因了,现在问题是如何让Qt Creator不用vs2008的Qt环境变量,而使用它自己的,即上图中的Manual那一栏。
解决办法:
在Qt Creator中选择要编译运行的项目;
然后在Qt Creator的IDE环境中左边下角,点击那个电脑的图标,如下图红色框所示:
在上图Desktop下面的Build中选择Qt Creator自带的编译器,即4.7.0
最后重新编译工程,即可通过。
其实,我们用Qt Creator建立QT工程的时候,Qt Creator就有一个Qt版本的检测,如下图所示:
这时候,不选则Qt in PATH,在编译运行时,就不会现上述的问题。