如何在VS Code中使用CMake Tools无需重新配置直接构建?
解决方案与解释
一、阻止CMake Tools自动重新配置
要让插件直接使用内部工具生成的配置结果,核心是关闭它的自动配置触发机制:
打开VS Code设置(Ctrl+,),修改以下选项:
- 关闭
CMake: Configure On Open:避免打开项目时自动执行配置 - 关闭
CMake: Auto Configure:避免构建前自动检查并重新配置
也可以直接在.vscode/settings.json中添加配置:
{ "cmake.configureOnOpen": false, "cmake.autoConfigure": false }- 关闭
指定内部工具生成的构建目录
确保CMake Tools指向内部工具已配置完成的build目录:- 打开命令面板(Ctrl+Shift+P),执行
CMake: Select Build Directory,选择内部工具生成的对应目录(比如make-Debug预设的输出路径) - 或者直接修改
CMakePresets.json的构建预设,明确指定binaryDir:"buildPresets": [ { "name": "p_debug", "configurePreset": "make-Debug", "jobs": 40, "binaryDir": "${sourceDir}/path/to/your/internal-build-dir" } ]
将
path/to/your/internal-build-dir替换为实际的构建目录路径。- 打开命令面板(Ctrl+Shift+P),执行
可选:关闭编辑CMakeLists时的自动配置
如果不需要修改CMakeLists.txt后自动触发配置,可关闭CMake: Configure On Edit选项。
完成以上设置后,用内部工具执行完配置,再点击VS Code的构建按钮,就会直接编译,不会重复执行配置步骤。
二、关于[[Targets In Preset]]的含义
这是CMake构建预设中的可选配置项,用来指定该预设默认要构建的目标(target)。比如项目包含多个可执行文件、库或测试目标时,可在这里列出需要默认构建的目标,避免每次构建都手动选择。
如果你的p_debug预设中没有这个配置,CMake默认会构建ALL_BUILD目标(即项目中所有定义的target),这是正常行为。如果需要指定特定目标,只需在构建预设中添加targets字段:
"buildPresets": [ { "name": "p_debug", "configurePreset": "make-Debug", "jobs": 40, "targets": ["your-main-executable", "your-utility-library"] } ]
内容的提问来源于stack exchange,提问作者rocksNwaves
相关产品推荐
相关产品推荐

