vscode+cmake高阶使用
文章目录
- 一、cmake的基本设置
- 二、使用预设文件对cmake的命令进行控制
关于vscode安装cmake的扩展以及构建一个简单的C++工程,网络上已经有很多教程了。这里不再叙述。本篇博客旨在记录一些高级的使用方法。
一、cmake的基本设置
打开vscode中camke Tools的相关设置
- 勾选Cmake: Allow Comments In Presets File 和Cmake: Allow Unsupported Presets Versions,是cmake支持通过配置CMakePrestes.json来配置编译选项。这个功能不一定会用,但是可以提前打开。
- 可以将这里设置为visible,从而让vscode的地步状态栏显示更多cmake配置相关的内容
二、使用预设文件对cmake的命令进行控制
普通的vscode+cmake的使用方法,在使用vscode状态栏的按钮进行cmake构建的时候,使用的是默认的命令,能够更改的参数也只有编译器,target等等。如果想要添加额外的参数,需要在task.json里和settings.json里进行配置,这种方式跨平台性很差,而且此时无法再使用vscode状态栏的按钮,因为在task.json里和settings.json里进行配置是vscode的特性,而不是cmake Tools插件的特性,此时状态栏的按钮仍然为默认的cmake指令。接下来是具体的配置方式
- 勾选Cmake: Allow Comments In Presets File 和Cmake: Allow Unsupported Presets Versions以后,重启vscode,下方状态栏会变成这样子
- 配置settings.json
{"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", //如果没有这一行, IntelliSense总是会默认使用debug,无视CMakePresets.json"cmake.useCMakePresets": "always", // 强制使用CMakePresets.json"cmake.buildDirectory": "${workspaceFolder}/build", // 默认构建目录(会被预设覆盖)"cmake.configureOnOpen": true
}
- 配置CMakePrests.json
{"version": 8,"configurePresets": [{"name": "linux-debug","displayName": "Linux Debug","binaryDir": "${sourceDir}/build","generator": "Ninja","cacheVariables": {"CMAKE_BUILD_TYPE": "Debug","CMAKE_EXPORT_COMPILE_COMMANDS": "ON"}}],"buildPresets": [{"name": "linux-debug","configurePreset": "linux-debug","configuration": "Debug"}]
}
配置完CMakePrests.json以后,可以通过下方的状态栏控制cmake执行什么样的命令。
关于CMakePrests.json的便利之处与其他高级功能,可以参考https://cloud.tencent.com/developer/article/2348379。