安装VS 2019后,CMake找不到VS 2017 C ++编译器

时间:2019-11-27 10:23:05

标签: c++ windows cmake visual-studio-2017 visual-studio-2019

我安装了Visual Studio 2017 Professional和Visual Studio 2019 Professional。

由于一些我无法控制的项目限制,我必须使用VS 2017编译器来编译代码。在安装Visual Studio 2019之前,以下CMake命令运行良好:

cmake -G "Visual Studio 15 2017 Win64"

但是在安装VS 2019之后,上面的行显示以下错误:

CMake Error at CMakeLists.txt:9 (project):
  Failed to run MSBuild command:

    MSBuild.exe

  to get the value of VCTargetsPath:

    Das System kann die angegebene Datei nicht finden

最后一行表示类似“系统无法找到给定文件”的内容。

有人可以帮助我解决问题吗?可悲的是,到目前为止,对于这个特定的项目,我必须使用VS2017的编译器。

编辑:如Neil在评论中所建议,使用Developer Command Prompt可以很好地工作。有什么方法可以使用Windows命令提示符吗?使用起来更简单。

Edit2 :我现在使用Neil建议的解决方案,并运行Visual Studio命令提示符中所需的命令,因为我不知道如何在Windows命令提示符下正确地进行操作。

1 个答案:

答案 0 :(得分:1)

CMake始终尝试查找Visual Studio的最新版本。因此,如果安装了VS2019,但未正确检测到,则3.14之前的CMake的较早版本可能会失败。

请注意,如果重新运行,则需要从构建目录中删除CMakeCache.txt和CMakeFiles文件夹。

如果您打算将VS2019与CMake一起使用,则需要使用CMake的体系结构选项(-A),因为没有“ Visual Studio 16 2019 Win64”生成器,例如cmake -G "Visual Studio 16 2019" -A x64适用于64位版本,cmake -G "Visual Studio 16 2019" -A Win32适用于32位版本。 CMake 3.0.2中引入了体系结构选项,因此对于较旧的Visual Studio安装,您也可以使用它代替特定的生成器名称。