如何修改VS Code中“构建所有项目”命令传给CMake的参数?
解决VS Code中CMake构建参数设置问题
一、用CMake预设快速配置(推荐,对应你要的“MSVC x64 C++20”便捷方案)
通过CMake预设文件可以统一管理配置和构建参数,步骤如下:
- 在项目根目录新建
.cmake文件夹,里面创建presets.json文件,填入以下内容:
{ "version": 3, "configurePresets": [ { "name": "msvc-x64-cpp20", "displayName": "MSVC x64 C++20", "generator": "Visual Studio 17 2022", "toolset": "host=x64", "architecture": "x64", "cacheVariables": { "CMAKE_CXX_STANDARD": 20, "CMAKE_CXX_STANDARD_REQUIRED": true, "CMAKE_EXPORT_COMPILE_COMMANDS": true }, "binaryDir": "${sourceDir}/build" } ], "buildPresets": [ { "name": "msvc-x64-cpp20-debug", "configurePreset": "msvc-x64-cpp20", "configuration": "Debug", "jobs": 26 }, { "name": "msvc-x64-cpp20-release", "configurePreset": "msvc-x64-cpp20", "configuration": "Release", "jobs": 26 } ] }
- 打开VS Code命令面板(Ctrl+Shift+P),输入
CMake: Select Configure Preset,选择msvc-x64-cpp20完成配置。 - 之后右键CMakeLists.txt执行“构建所有项目”时,会自动使用预设里的参数:首次配置用
configurePresets的设置,后续构建用buildPresets的设置。
二、直接调整VS Code CMake扩展设置
如果不想用预设,也可以直接在VS Code里手动设置参数:
- 配置阶段(首次编译)参数:打开设置(Ctrl+,),搜索
CMake: Configure Args,填入需要的参数,比如:
同时可以在-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON -A x64CMake: Generator里选择Visual Studio 17 2022,CMake: Architecture选择x64,替代手动写-G和-A参数。 - 构建阶段(已有构建文件)参数:搜索
CMake: Build Args,填入构建参数,比如:--config Debug -j 26
补充:为什么两次命令不同?
这是CMake的正常流程:
- 首次执行是**配置(configure)**阶段,需要生成对应平台的构建系统文件(比如VS的.sln),所以用
cmake -S <源码目录> -B <构建目录> -G <生成器>这类参数。 - 已有构建文件后是**构建(build)**阶段,直接调用生成好的构建系统编译代码,所以用
cmake --build <构建目录>这类参数。
内容的提问来源于stack exchange,提问作者EatingTechnobladesRemainsAt3am
相关产品推荐
相关产品推荐

