You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio 2017中使用已安装CMake而非内嵌版本

解决Visual Studio 2017内嵌CMake版本与Boost 1.66.0冲突的问题

这问题我碰到过好几次了——核心原因就是VS2017默认用的是自带的旧版CMake,版本大概率低于3.11.0 rc2,而你的Boost 1.66.0明确要求CMake 3.11.0 rc2及以上,所以命令行用自己装的高版本能跑,VS里用内嵌的就炸了。给你几个靠谱的解决办法:

  • 第一步:确认VS当前使用的CMake版本
    你可以在VS的输出面板里找到CMake命令的路径,看是不是指向C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO...下的内嵌版本,也可以通过工具 -> 选项 -> CMake -> 常规查看当前的CMake可执行文件路径。

  • 第二步:切换VS到你本地安装的CMake 3.11.0 rc2

    1. 打开VS2017,加载你的CMake项目
    2. 点击顶部菜单栏的工具 -> 选项
    3. 在左侧导航栏展开CMake,选择常规
    4. 在右侧的“CMake executable”下拉框里,选择“浏览”,找到你本地安装的CMake路径(比如C:\Program Files\CMake\bin\cmake.exe)
    5. 点击“确定”保存设置
  • 第三步:验证并重新构建
    右键点击解决方案资源管理器里的CMakeLists.txt,选择重新加载CMake项目,然后看输出面板里的CMake命令路径是不是已经变成你指定的本地版本了,之后再构建项目应该就能正常运行了。

  • 进阶技巧:通过CMakeSettings.json永久配置
    如果不想每次新建项目都改设置,可以直接修改项目根目录的CMakeSettings.json文件,在对应的配置项里添加cmakeExecutable字段,指定你的本地CMake路径,示例如下:

{
  "configurations": [
    {
      "name": "Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "cmakeExecutable": "C:/Program Files/CMake/bin/cmake.exe",
      "buildRoot": "${projectDir}\\out\\build\\${name}",
      "installRoot": "${projectDir}\\out\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "",
      "ctestCommandArgs": ""
    }
  ]
}

简单说就是让VS放弃自带的旧CMake,改用你已经验证过的、符合Boost要求的版本,问题就能解决啦。

内容的提问来源于stack exchange,提问作者Jepessen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:59:03