有谁知道“C编译器”cl“无法编译简单的测试程序。”意味着什么?
我正在尝试使用MSVC 9上的CMake编译Wt
操作系统是Windows XP
这是完整的日志:
检查工作C编译器:cl检查 用于工作的C编译器:cl - 已损坏 I:CMake错误:/ Program Files / CMake 2.8 /共享/ cmake的-2.8 /模块/ CMakeTestCCompiler.cmake:50 (消息):C编译器“cl”是 无法编译简单的测试 程序
它失败并显示以下输出:
改变目录: I:/ SophisPal /建造/ CMakeFiles / CMakeTmp
运行Build 命令:C:\ PROGRA〜1 \ MICROS〜1.0 \ Common7 \ IDE \ VCExpress.exe CMAKE_TRY_COMPILE.sln / build Debug / project cmTryCompileExec
Microsoft(R)Visual C ++ Express 版本9.0.30729.1。
版权所有(C)Microsoft Corp 2007。 保留所有权利。
1> ------构建开始:项目: cmTryCompileExec,配置:调试 Win32 ------
1>编译...
1> Microsoft(R)32位C / C ++ 优化编译器版本 15.00.30729.01 for 80x86
1>版权所有(C)Microsoft 公司。保留所有权利。
1> cl / Od / D“WIN32”/ D“_WINDOWS”/ D. “_DEBUG”/ D“CMAKE_INTDIR = \”Debug \“”
/ D“_MBCS”/ FD / RTC / MDd / FO “cmTryCompileExec.dir \调试\”
/Fd"I:/SophisPal/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec.pdb” / W3 / c / Zi / TC / Zm10001> \ testCCompiler.c
1> testCCompiler.c
1>将清单编译为资源......
1> Microsoft(R)Windows(R)资源 编译器版本6.1.6723.1
1>版权所有(C)Microsoft 公司。保留所有权利。
1>链接...
1>嵌入清单...
1>项目:错误PRJ0003:错误 产卵'cmd.exe'。
1>构建日志保存在
“文件:// I:\ SophisPal \建立\ CMakeFiles \ CMakeTmp \ cmTryCompileExec.dir \调试\ BuildLog.htm”1> cmTryCompileExec - 1个错误,0 警告(S)
==========构建:0成功,1失败,0最新,0跳过==========
CMake将无法正确使用 生成这个项目。调用堆栈 (最近一次电话会议):
CMakeLists.txt:7(项目)配置不完整的错误 发生!
答案 0 :(得分:6)
我用Google搜索了cmd.exe错误,并提出了this page。看起来Visual Studio需要配置一些路径,因此它知道如何查找cmd.exe。以下是该主题的步骤:
您必须做的是更改MSVS选项(工具菜单>选项>项目和解决方案> VC ++目录)以确保
$(SYSTEMROOT)
$(SYSTEMROOT)\ System32下
$(SYSTEMROOT)\ System32下\ WBEM
是在$(PATH)之前指定的。
答案 1 :(得分:2)
检查您安装的任何其他工具是否覆盖了PATH变量。在我的情况下,这发生了,症状(链接错误)完全相同。
答案 2 :(得分:1)
关键线可能是:
1>Project : error PRJ0003 : Error spawning 'cmd.exe'.
由于某种原因,MSVC无法执行'cmd.exe',因此编译失败。
我猜这个问题可能与%PATH%的设置有关;可能还有其他原因造成麻烦。
尝试做CMake手动完成的工作 - 看看你是否得到了同样的错误。这将帮助您诊断问题是否在CMake中(如果它在命令行中对您有效)或在一般环境中(如果它对您不起作用)。
了解如何阅读错误消息!
Change Dir: I:/SophisPal/build/CMakeFiles/CMakeTmp
Run Build Command:C:\PROGRA~1\MICROS~1.0\Common7\IDE\VCExpress.exe CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec
这是输出中的两个早期行。第一个表示CMake将目录更改为其中一个创建。第二个表示它在那里运行的命令。在运行命令之前,您还需要找出它在目录中创建的文件。
掌握了这些信息后,您必须完成相同的步骤 - 'cd'后跟'vcexpress'。
答案 3 :(得分:1)
我在VS 7 .NET 2003上遇到了同样的问题。
通过添加
修复<MSVS .NET 2003 Home>\Vc7\bin
<MSVS .NET 2003 Home>\Common7\IDE
VC ++目录的路径(工具菜单&gt;选项&gt;项目&gt; VC ++目录)
问题的真正原因是: