CMake 无法找到 Visual Studio 15 2017 生成器的实例,但在 Visual Studio 16 2019 中工作正常

问题描述

类似于 CMake: Visual Studio 15 2017 could not find any instance of Visual Studio,但就我而言,我的主要安装版本的 MSVC 生成器可以工作。 2017 年的发电机似乎对我不起作用。这是我的安装设置:

enter image description here

我的理解是这应该可行,我应该有合适的工具。

当我运行 cmake -G "Visual Studio 16 2019" ../

我明白

-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.
-- The C compiler identification is MSVC 19.28.29337.0
-- The CXX compiler identification is MSVC 19.28.29337.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/.../build

目前看起来不错。但是当我运行 cmake -G "Visual Studio 15 2017" ../

我明白

CMake Error at CMakeLists.txt:2 (project):
  Generator

    Visual Studio 15 2017

  Could not find any instance of Visual Studio.



-- Configuring incomplete,errors occurred!
See also "C:/.../build/CMakeFiles/CMakeOutput.log".

我目前正在使用这个版本的 cmake:

cmake -version
cmake version 3.20.0-rc2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

所以我应该拥有使用 cmake 的所有最新方法

我知道我可以手动配置生成器,但是这会坚持使用 cmake 缓存并不断被删除,我的印象是 CMake 可以在没有这种手动调整的情况下处理多个 Visual Studio 实例,而且我应该能够至少使用环境变量指向每个变量,尽管这似乎也不起作用。

解决方法

如果您想生成面向 Visual Studio 2017 平台工具集 (v141),但使用 Visual Studio 2019 作为生成器,您可以使用以下 CMake 生成命令

cmake -G "Visual Studio 16 2019" -T v141 ..
,

我认为这是一个不幸的命名案例。安装“VS 2017 C++ x64/x86 构建工具”只会安装编译器、链接器和标准库,而不是包括 MSBuild 在内的整个“Visual Studio Build Tools 2017”。但是您需要后者才能使用“Visual Studio 15 2017”生成器。您可以在 https://aka.ms/vs/15/release/vs_buildtools.exe

找到 2017 构建工具的安装程序