【发布时间】:2017-07-30 18:33:25
【问题描述】:
所以我昨天安装了 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 中,工作流程发生了变化 - 我已阅读 this post from 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 在VC\Tools\MSVC\14.10.25017\bin 中时会报告Version 19.10.25017?
【问题讨论】:
-
cl.exe报告编译器版本。它所在的目录是整体编译器版本。请注意,与 VS15 捆绑的 CMake 由 VS 团队修改,基于 CMake 3.6,IIR。它不支持作为官方 CMake 版本。我建议您同时坚持使用普通的 CMake 3.8,它可以与 VS15 一起正常工作并生成正确的解决方案文件。另外,请注意this bug in VS15。 -
@tambre well
cmake --version报告3.7.2这是最新的官方版本(3.8 是 RC)——它是我与 VS 分开安装的。但我现在会尝试 3.8。 -
@tambre - 不 - CMake 3.8 RC 仍然存在同样的问题
-
我认为您不需要重新安装 Windows。发生这种情况的原因还有很多。一个是例如围绕管理员权限。您可以尝试从具有管理权限的 shell 再次运行它,以交叉检查您的 Visual Studio 是否设置为需要管理员权限。您能否将
CMakeFiles\CMakeError.log内容添加到您的问题中?那里一定有一些错误原因。 -
@onqtam 不要将答案编辑到问题中,您应该将其作为答案发布,然后接受您自己的答案。回答自己的问题并没有错。
标签: c++ visual-studio visual-c++ cmake visual-studio-2017