【问题标题】:CMake: How to specify VS2015.3 toolset with VS2017 installedCMake:如何指定安装了 VS2017 的 VS2015.3 工具集
【发布时间】:2018-04-19 15:35:23
【问题描述】:

我安装了 VS2017,同时安装了 VS2017 (v141) 和 VS2015.3 (v140) 工具集。我需要使用 CMake 生成解决方案,并且我希望 CMake 像安装了 VS2015 一样被“愚弄”,因此我可以使用 v140 工具集构建项目。
我知道这个问题可能是重复的: How cmake specify "Platform Toolset" for a Visual Studio 2015 project?
但它提供的解决方案对我没有帮助。
错误消息是:

Selecting Windows SDK version 10.0.14393.0 to target Windows 10.0.15063.
The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:18 (project):
  No CMAKE_C_COMPILER could be found.

我尝试安装 VS2017 和 VS2015.3 (IDE),但 VS2015.3 拒绝创建一个简单的控制台程序。
还有其他方法可以使用 v140 工具集生成解决方案吗?
(P.S.不要告诉我应该先用v141工具集生成,然后在Visual Studio中修改工具集选项。这有很大的不同。)

【问题讨论】:

  • 您能否添加产生错误的cmake 命令行?您能否看看您的CMakeCache.txt 使用了哪些编译器和 nmake 路径。
  • 没有。我正在使用 CMake GUI,我看不到它的实际命令。我为生成器选择了“Visual Studio 15 2017 win64”,为 -T 参数选择了“v140”。我检查了 CMakeCache,txt 但发现它找不到任何具有上述配置的编译器或链接器。

标签: c++ visual-studio-2015 compilation cmake visual-studio-2017


【解决方案1】:

我刚刚运行了一个测试,它适用于我在 CMake 的 GUI(版本 3.10.0 RC4)中的以下设置:

然后我得到以下输出:

The CXX compiler identification is MSVC 19.0.24215.1
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Configuring done
Generating done

如果我打开生成的解决方案,它会 - 正如预期的那样 - 问我:

平台工具集映射

来自Marco Foco: Microsoft Visual C++ version Map

如果这不起作用...

首先请检查您的二进制输出目录中的CMakeError.log。该错误应该让您了解问题所在。

如果这没有帮助,您可以尝试几件事(除了重新安装 VS,我认为这不会解决问题):

  1. 其中一个 Windows SDK 未完全/正确安装;从微软网站重新安装
  2. 尝试赋予cmake-gui管理权限
  3. 检查您的 PATH 环境中是否存在带有 GCC 编译器的 GNU 工具链。

参考文献

【讨论】:

  • 嗯...也许重新安装 Visual Studio 可以解决这个问题。我试试看。
  • @AurusHuang 如果上述方法不起作用,请首先检查二进制输出目录中的CMakeError.log。我假设以下情况之一: 1. Windows SDK 之一未完全/正确安装;从微软网站重新安装 2. 尝试赋予cmake-gui 管理权限 3. 检查您的PATH 环境中是否有带有GCC 编译器的GNU 工具链。
  • 我重新安装了 Visual Studio 2017 并将其升级到最新版本。在 CMake 中输入v140,它就可以工作了。
  • 谢谢。奇怪的是控制台不工作但gui工作。
  • macOS 上是否有适用于 XCode 的可用工具集列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2015-10-11
  • 2016-06-03
  • 2018-11-12
  • 1970-01-01
相关资源
最近更新 更多