所以我昨天安装了 Visual Studio 2017。我还安装了支持 VS 2017 的 CMake 3.7.2。
我的 VS 安装是使用 Game development with C++
工作流 + 一些其他组件:
我还添加了 CMake 的东西(但我认为我什至不需要它 - 因为我使用 CMake 作为独立工具来生成 VS 解决方案)和 MSBuild(我有 msbuild.exe
甚至在添加该组件之前 - 所以不确定该附加组件究竟做了什么)。
使用 VS 2015,我能够从正常的命令提示符处运行 cmake .
以获得解决方案。
在 VS 2017 中,工作流程发生了变化——我读过 Microsoft 的这篇文章。
所以我尝试了以下方法:
- 我打开了
Developer Command Prompt for VS 2017
并从中运行cmake . -G "NMake Makefiles"
。然后运行cmake --build .
正确编译所有内容。 - 当我在提示符中尝试以下操作时:
cmake . -G "Visual Studio 15 2017 Win64"
强制创建解决方案时出现以下错误:
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_CXX_COMPILER could be found.
-- Configuring incomplete, errors occurred!
我还尝试使用 vswhere.exe 设置环境并运行 vcvarsall.bat
像这样:
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat”amd64
而且我只能生成 NMake 文件而不是解决方案。
那么我怎样才能得到解决方案呢?
为什么 cl.exe
报告 Version 19.10.25017
当它在 VC\Tools\MSVC\14.10.25017\bin
?
原文由 onqtam 发布,翻译遵循 CC BY-SA 4.0 许可协议
将我的评论变成答案
错误
-- The CXX compiler identification is unknown - No CMAKE_CXX_COMPILER could be found.
基本上意味着 CMake 无法编译简单的测试程序(它总是作为识别/验证编译器的一部分)。您可以查看
CMakeFiles\CMakeError.log
(相对于您的二进制输出目录),错误原因应该在那里。到目前为止我遇到的两个可能的原因:
缺少管理员权限。您可以尝试从具有管理权限的 shell 再次运行它,以交叉检查您的 Visual Studio 是否设置为需要管理员权限。
缺少 Windows SDK。验证您的 SDK 安装,例如检查您是否安装了任何资源编译器。它应该在类似于以下的路径中:
Visual Studio 2017 安装
请注意,即使您选择了其中一个 C++ 预定义包(例如我使用了
Desktop development with C++
然后在Individual Components
下添加了更多包,Visual Studio 也可能 不会 安装所有必需的 C++ 包。---
选项卡)。这是对我有用的选择(VS2017 社区版,Windows 10):
如果您有使用 MFC/ATL 库的项目,则需要将其添加到
SDKs, libraries, and frameworks
子类别下:参考