Qt Creator错误:“command failed with exit code 9009, 'cl' 不是内部或外部命令,也不是可运行的程序”

由于用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,在编译运行时,就不会现上述的问题。
### QT 环境下 'cl' 命令不是内部外部命令 解决方案 当遇到 `'cl' 不是内部外部命令` 的错误提示时,通常是因为编译器未被正确识别。这可以通过调整环境变量以及IDE配置来解决。 对于该问题的一种处理方式是在系统的 `Path` 变量中加入 `cl.exe` 所处的位置,例如路径为 D:\Software\VisualStudio\VStudio\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64[^1]。确保这个路径指向的是实际存在 `cl.exe` 文件的地方,并且适用于当前使用的操作系统架构(如 x64 者 x86)。 另一种常见的解决方案涉及到了Qt Creator IDE本身的设置。如果正在尝试集成 Microsoft Visual C++ 编译器与 Qt Creator,则可能需要注意一些特定选项的影响。有报告指出取消选中 "使用 jom 替代 nmake" 这一选项可能会引发其他类型的构建失败;相反地,保持这一选项开启状态的同时,通过启动 VS 安装目录下的 vcvarsall.bat 脚本来初始化必要的环境变量可以有效解决问题。具体来说就是定位至类似于 D:\Program Files\Microsoft Visual Studio 11.0\VC 的位置并执行其中的脚本文件,建议以管理员身份运行以避免潜在权限问题[^2]。 此外,还有一种情况是由于重新打开项目之后才解决了这个问题,这意味着有时候简单的重启开发工具也可能帮助刷新某些临时性的配置失误[^3]。 综上所述,针对不同版本的软件组合和个人工作流习惯,上述提到的方法都值得尝试以便找到最适合自己的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值