CMake没有找到Visual C++编译器

Ash*_*her 111 c++ cmake visual-studio-2015

安装Visual Studio 2015并在以前的项目上运行CMake后,CMake错误表明它无法找到C编译器.

The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:4 (PROJECT):
  No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:4 (PROJECT):
  No CMAKE_CXX_COMPILER could be found.
Run Code Online (Sandbox Code Playgroud)

cl.exe在Visual Studio文件夹中搜索,C:\Program Files\Microsoft Visual Studio 14.0但找不到它.

如何使用Visual Studio 2015将CMake设置为在Windows上运行?

Ash*_*her 118

我找到了解决方案.Visual Studio IDE安装成功后,它没有安装任何构建工具,因此没有安装C++编译器.

通过尝试在Visual Studio 2015 GUI中手动创建C++项目,我能够提示它下载C++包.然后CMake能够毫无困难地找到编译器.

  • 很酷,这个答案给了我一些线索.我使用我的VS2015 ISO来安装C++组件并解决了问题. (2认同)
  • 究竟哪些软件包/组件/东西没你们安装?我创建了一个Visual C++/Win32Project,它安装了两个组件,跑OK里VS,但cmake的像以前一样仍然抱怨.谢谢.-S (2认同)
  • 这也与vs 2017一起工作 - 多么奇怪!谢谢你的提示,伙计! (2认同)

For*_*une 34

这是适合我的解决方案:

  1. 打开Visual Studio命令提示符工具(作为管理员)
  2. 导航到您拥有CMake可执行文件的位置
  3. 运行Cmake.exe
  4. 像往常一样选择构建和源文件夹
  5. 选择适当的Visual Studio编译器,然后单击配置按钮

希望它应该没有问题.

  • 我不认为您需要以管理员身份运行VS命令提示符.但是运行VS命令promt会确保cmake在路径上寻找所有内容.根据你安装CMake的方式(无论你把它放在路径上),你也可以导航到你的构建目录并从那里运行`cmake ..`.无论如何,请注意,因为例如git-bash终端不会自动将所有内容放在其路径上.这对我有帮助! (3认同)
  • 更新:在Windows 10上,这称为[Developer Command Prompt](https://docs.microsoft.com/zh-cn/dotnet/framework/tools/developer-command-prompt-for-vs) (2认同)
  • 很奇怪的解释:1:不叫VS Studio命令提示符2:“导航”,你的意思是使用“cd”命令?3:你的意思是,运行cmake-gui?正如您在第 5 步中所说的“单击”按钮 4:继续??你的意思是填写?5:在配置窗口的下拉框中,我可以选择VS编译器,但仍然不知道C&C++编译器...... (2认同)

Car*_*lsh 30

我查看了CMakeError.log文件,发现了一个错误 cannot run 'rc.exe'

我搜索并找到了这个答案,将RC.Exe和RcDll.Dll从Microsoft SDKs bin复制到VC bin,然后CMake工作.


编辑:对另一个问题的最佳答案表明它是一个PATH问题,因此它可能足以确保Microsoft SDK bin在您的PATH中.


小智 14

确保在生成器中使用正确版本的Visual Studio.安装Visual Studio 14时,我错误地选择了Visual Studio 15.

  • 这也是我的问题.令人困惑的是因为Visual Studios 2015是版本14! (3认同)
  • 请注意,您可能需要删除缓存才能更改VS的版本.为此,请单击"文件">"删除缓存". (3认同)

Vad*_*man 12

那些在Visual Studio 2017上遇到这种情况的人:有一个与CMake相关的功能需要与相关的编译器工具集一起选择和安装.请参见下面的截图.

必须安装用于CMake的Visaul C++工具


Tro*_*eek 8

如果上述解决方案均无效,请停止并进行健全性检查.

我使用错误的-G <config>字符串烧了它,它给了我这个误导性的错误.

首先,从VS命令提示符运行而不是常规命令提示符.您可以在Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015此设置中找到 VS工具的所有正确路径等.

现在看看cmake提供了哪些发电机......

cmake -help

...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...

然后选择适当的字符串所述[拱]加入.

mkdir _build cd _build cmake .. -G "Visual Studio 15 Win64"

在子目录中运行cmake可以更容易地执行"清理",因为您可以删除该目录中的所有内容.

我升级到Visual Studio 15,但没有注意,并试图为2012年生成.


cho*_*wey 7

对我来说,我检查了CMakeError.log文件,发现:

[...]错误MSB8036:找不到Windows SDK版本8.1.安装所需版本的Windows SDK或在项目属性页中更改SDK版本,或右键单击解决方案并选择"重新定位解决方案".

尽管在Windows 7上使用Visual Studio 2017,但似乎CMake正在尝试使用Windows 8.1 SDK构建其检测项目.

我使用Visual Studio安装程序添加该组件,现在CMake很高兴作为一个蛤蜊​​.


Ale*_*ker 5

菜单 \xe2\x86\x92 Visual Studio 2015 \xe2\x86\x92 Visual Studio 2015 的 MSBuild 命令提示符。然后 CMake 可以找到cl.exe.

\n\n
set PATH="c:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.16299.0\\x64\\";%PATH%\n
Run Code Online (Sandbox Code Playgroud)\n\n

将上面的路径更改为 Windows SDK 的安装位置。

\n\n

CMake 可以找到rc.exe.

\n\n

cd 到路径CMakeLists.txt并执行以下操作:

\n\n
md .build\ncd .build\ncmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release\ncmake --build .\n
Run Code Online (Sandbox Code Playgroud)\n\n

之后的参数-G应该由 CMake 获取。使用--help; 您可能有也可能没有发电机。

\n