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 应该能启动调试了。