CMake无法找到VS14 2015的MSBuild.exe,如何直接指定该编译器?
解决CMake直接使用VS14 2015 win64编译器的问题
我之前也碰到过一模一样的情况,CMake因为找不到VS2015对应的MSBuild路径报了错,给你几个亲测有效的解决方案:
方案一:用VS2015开发者命令提示符启动CMake
这是最省心的方法,VS的开发者命令提示符会自动帮你配置好所有必要的环境变量,包括MSBuild的路径:
- 找到系统里的「VS2015 x64 Native Tools Command Prompt」(如果是64位项目就选这个,32位选对应的x86版本),打开它
- 在这个命令行窗口里切换到你的CMake项目根目录,然后运行:
这样CMake就能自动定位到VS2015的编译工具链,不会再报错。cmake -G "Visual Studio 14 2015 Win64" ..
方案二:手动指定MSBuild路径给CMake
如果不想用开发者命令提示符,可以直接在CMake命令里指定VS2015的MSBuild位置:
- 先找到VS2015的MSBuild路径,一般是
C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe(64位版本) - 运行CMake时加上
-DCMAKE_MAKE_PROGRAM参数:
或者先设置环境变量再运行CMake:cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_MAKE_PROGRAM="C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe" ..set MSBUILD_EXECUTABLE=C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe cmake -G "Visual Studio 14 2015 Win64" ..
方案三:修复VS2015的组件安装
有时候虽然装了VS2015的扩展组件,但关键的编译工具可能没装全:
- 打开Visual Studio Installer,找到VS2015的安装条目,点击「修改」
- 确保勾选了**「MSBuild Tools 2015」和「Windows 10 SDK(对应你项目需要的版本)」**这两个组件
- 重新安装完成后重启电脑,再尝试直接用CMake指定VS14 2015 Win64
方案四:检查并修复环境变量
可能是环境变量被VS2017覆盖,导致CMake找不到VS2015的路径:
- 打开系统环境变量设置,检查
VCTargetsPath是否指向VS2015的路径,比如C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140 - 如果没有这个变量就手动添加;如果指向的是VS2017的
v150路径,改成v140的路径 - 同时确保
Path环境变量里包含VS2015的MSBuild路径:C:\Program Files (x86)\MSBuild\14.0\Bin\amd64
我自己当时用方案一就解决了问题,推荐你先试试这个~
内容的提问来源于stack exchange,提问作者NanBlanc




