VS Code c++ & cmake & clangd 项目配置
C++ VSCode
本文主要介绍博主个人使用的vs code c++配置。本配置用到了llvm 的 clangd, 是c++的language server。
众所周知,Jetbrains的clion也用的是clangd做后端,在vscode中基本可以提供完美的c++代码补全,实时纠错等功能,实际使用体验接近clion等IDE。
需要vscode插件:
c/c++ (需要安装好c++编译开发环境)
clangd (需要提前安装好clangd,详见 https://clangd.llvm.org/installation.html 加入path,或在插件设置中设计clangd路径)
cmake tools
建议安装:
cmake (提供CMakeLists.txt的语法高亮)
clang-format (提供代码格式化功能)
配置
在 ./.vscode/settings.json中:(实际的json文件中不能包含注释)
{
"cmake.generator": "Ninja",
//设置configure目标为Ninja,makefile, visiual studio等,相当于命令行 -G XXXX
"cmake.configureSettings": {
"xx1": "xxxxx",
"CMAKE_EXPORT_COMPILE_COMMANDS": true
},
//相当于 -Dxx1="xxxxx" ,用于定义cmake配置里的变量
//CMAKE_EXPORT_COMPILE_COMMANDS 将在后面等clangd用到
"cmake.buildDirectory": "XXX",
//设置build文件的位置,默认./build,如果更改需要更改clangd的配置(见下文)
"cmake.buildArgs" : ["XXXX"],
//An array of additional arguments to pass to cmake --build.
"cmake.environment" : {
"XXX" : "xxxx"
}
//设置环境变量
}
其他cmake插件相关配置参考: https://github.com/microsoft/vscode-cmake-tools/blob/main/docs/cmake-settings.md
clangd会用到cmake生成的compile_commands.json作为实时编译检查的指令默认会在./和./build查询,如果修改了build directory,可以在配置文件中添加:
"clangd.arguments": [
"-background-index",
"-compile-commands-dir = YOUR_BUILD_DIRECTORY"
]
此时完成cmake配置并configure后编写代码应该能看到代码补全。
Debug:
在 ./.vscode/launch.json中配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "NAME",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "CMake: build",
"program": "xxx",
//编译出来的可执行文件位置
"args": ["-arg1", "-arg2"],
//可执行文件的args,按照数组添加,相当于运行 xxx -arg1 -arg2
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
//执行目录
"environment": [],
"externalConsole": false,
"MIMode": "lldb"
//选择gdb还是lldb等
}
]
}
现在在文件中设置断点,按F5应该能启动调试了。