7

有谁知道“C 编译器“cl”无法编译简单的测试程序。” 方法?
我正在尝试在 MSVC 9 上使用 CMake编译Wt
。操作系统是 Windows XP。
这是完整的日志:

检查工作 C 编译器:cl 检查工作 C 编译器:cl -- 在 I:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:50 (MESSAGE) 处损坏 CMake 错误:C 编译器" cl" 无法编译简单的测试程序。

它失败并显示以下输出:

更改目录:I:/SophisPal/build/CMakeFiles/CMakeTmp

运行编译命令:C:\PROGRA~1\MICROS~1.0\Common7\IDE\VCExpress.exe CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec

Microsoft (R) Visual C++ Express Edition 版本 9.0.30729.1。

版权所有 (C) Microsoft Corp 2007。保留所有权利。

1>----- 构建开始:项目:cmTryCompileExec,配置:Debug Win32 ------

1>编译...

1>Microsoft (R) 32 位 C/C++ 优化编译器版本 15.00.30729.01 用于 80x86

1>版权所有 (C) 微软公司。版权所有。

1>cl /Od /D "WIN32" /D "_WINDOWS" /D "_D​​EBUG" /D "CMAKE_INTDIR=\"Debug\""
/D "_MBCS" /FD /RTCs /MDd /Fo"cmTryCompileExec.dir\Debug \"
/Fd"I:/SophisPal/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec.pdb" /W3 /c /Zi /TC /Zm1000

1> .\testCCompiler.c

1>testCCompiler.c

1>将清单编译到资源...

1>Microsoft (R) Windows (R) 资源编译器版本 6.1.6723.1

1>版权所有 (C) 微软公司。版权所有。

1>链接...

1>嵌入清单...

1>项目:错误 PRJ0003:错误生成“cmd.exe”。

1>构建日志保存在
“file://i:\SophisPal\build\CMakeFiles\CMakeTmp\cmTryCompileExec.dir\Debug\BuildLog.htm”

1>cmTryCompileExec - 1 个错误,0 个警告

========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

CMake 将无法正确生成此项目。调用堆栈(最近的调用优先):
CMakeLists.txt:7 (PROJECT)

配置不完整,出现错误!

4

4 回答 4

6

我用谷歌搜索了 cmd.exe 错误并想出了这个页面。看起来 Visual Studio 需要配置一些路径,以便它知道如何找到 cmd.exe。以下是该线程的步骤:

您必须做的是更改 MSVS 选项(工具菜单 > 选项 > 项目和解决方案 > VC++ 目录)以确保

$(系统根)

$(SystemRoot)\System32

$(SystemRoot)\System32\wbem

在 $(PATH) 之前指定。

于 2009-12-13T13:34:11.870 回答
2

检查您安装的任何其他工具是否覆盖了 PATH 变量。就我而言,这发生了,并且症状(链接错误)完全相同。

于 2012-03-06T12:00:33.510 回答
1

我在 VS 7 .NET 2003 上遇到了同样的问题。

通过添加修复

<MSVS .NET 2003 Home>\Vc7\bin
<MSVS .NET 2003 Home>\Common7\IDE

VC++ 目录的路径(工具菜单 > 选项 > 项目 > VC++ 目录

问题的真正原因是:

  1. 在系统或 MSVS 路径中找不到 cl.exe;
  2. cl.exe 需要 mspdb71.dll。
于 2012-02-15T22:42:34.010 回答
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'。

于 2009-12-13T13:32:16.377 回答