【问题标题】:CMake configuring fails. "cl.exe is not able to compile a simple test program"CMake 配置失败。 “cl.exe 无法编译简单的测试程序”
【发布时间】:2013-01-13 11:57:18
【问题描述】:

我正在尝试使用 CMake 为 MSVC++2010 构建解决方案。由于我安装了不再工作的 Visual Studio 2012。 CMake 附带以下错误消息: 《C 编译器》C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe”无法编译简单的测试程序。”

在为我的问题寻找解决方案时,我发现了这个主题 (Cmake is Unable to Configure Project for Visual Studios 10 amd64),虽然解决了我的问题,但该解决方案对我不起作用。

任何帮助将不胜感激。

【问题讨论】:

  • 我也遇到过类似的问题,最终将管理员权限授予 devenv.exe。注意:通过将其添加到 Program Files 中 devenv.exe 的属性中
  • 谢谢!这对我完全有用。
  • @Andre,写下你的评论作为答案。 +1

标签: visual-studio-2010 cmake


【解决方案1】:

我在 Win7 上遇到了同样的问题。
对我有用的是@Andre 在评论中建议的:

  1. 右键单击->VS 安装目录中cl.exe 的属性(确切路径出现在CMake 错误中);
  2. 选择兼容性选项卡;
  3. 选中“权限级别”框中的“以管理员身份运行此程序”。

【讨论】:

  • 这对我不起作用,请参阅我的问题stackoverflow.com/questions/22392976/…。 cl.exe(这是一个 XML 文件)也没有兼容性选项卡,这些只能在同一文件夹中为 cl 完成。
  • @omgzor 您启用了“隐藏已知文件类型的扩展名”选项。 cl 实际上是cl.exe,而cl.exe 实际上是cl.exe.config。我建议禁用此设置。
【解决方案2】:

我遇到了同样的问题。上述解决方案对我不起作用。查看this post后,我的问题得到了解决。

首先,检查您的系统上是否安装了 .NET 4.5。如果你这样做,那很可能会导致问题。尝试升级到 VS2010 SP1 或将 .NET 降级到 4.0

原因:

出现此错误是因为您在系统中实际安装了 Visual C++ 2010 之后安装了 Visual C++ 2012;另一个原因是因为 .net Framework 4.5 替换了 .net Framework 4.0; .net 框架损坏的文件;

如何解决

从您的系统中卸载 .NET Framework 4.5;然后下载 .NET Framework 4.0 并安装它;这应该可以解决您的问题;

【讨论】:

  • 为什么这被否决了?这正是我遇到上述问题的原因,它对我帮助很大......
  • 谢谢!很高兴它有帮助。
【解决方案3】:

我遇到了这个问题,我通过这种方式解决了。您应该在控制台中运行 cmake,

之类的命令
>vcvars32  (to set some system vars, C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvar32.bat)

>cmake .. -G"NMake Makefiles" (.. is your code folder) 

>nmake  (It will work well!)

您应该在一个控制台中执行此操作,不要打开另一个控制台。

【讨论】:

  • 你拯救了我的星期六早上!
【解决方案4】:

我遇到了完全相同的问题。我通过在cmake之前添加一个命令解决了

call "C:/Program Files (x86)/VC/vcvarsall.bat" amd64

vcvarsall.bat 的路径和架构可能在你的电脑上有所不同。

根据Usage of vcvarsall.bat,这个命令是为命令行编译设置合适的环境变量。

【讨论】:

  • 类似郑大小
【解决方案5】:

我遇到了类似的问题,

在我的情况下,以管理员身份运行 Visual Studio 2017 并应用 @Adi Shavit 的答案是有效的。

【讨论】:

  • 这个答案最初是由@Andre 从上面的评论中回答的。
【解决方案6】:

对于 Visual Studio 2017 并使用 cmake,我收到以下错误消息

-- Selecting Windows SDK version 10.0.17134.0 to target Windows 10.0.18363.
-- The C compiler identification is MSVC 19.14.26433.0
-- The CXX compiler identification is MSVC 19.14.26433.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe - broken
CMake Error at C:/Program Files/CMake/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake:66 (message):
  The C compiler

    "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x64/cl.exe"

  is not able to compile a simple test program.

我通过运行 vcvars140.bat 脚本设置构建环境解决了这个问题(如下所示)。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\vsdevcmd\ext\vcvars> .\vcvars140.bat 

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2021-03-18
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多