前言
笔者之前都是在使用 vscode 的 c/c++ 插件开发学习,由于工作接触的项目过大,在多人开发时,c/c++ 插件几乎无法使用。
经过他人推荐,最近在 vscode 上使用了基于 Language Server Protocol (LSP) 的 clangd,工作体验瞬间飙升了几个层次。
因此,想要尝试 LSP 的完整体验,就在个人 PC 上使用 clang 搭建了 c/c++ 开发环境。
环境介绍
Ubuntu 24.10
使用工具:clang、clangd、lldb、cmake、ninja
- clang:c/c++ 编译器
- clangd:LSP 服务器
- lldb:c/c++ 调试器
- camke:项目构建工具
- ninja:项目构建加速工具
工具安装命令:
sudo apt install clang clangd lldb cmake ninja-build
vscode 1.96.2 客户端
使用插件:clangd、CodeLLDB、CMake、CMake Tools
- clangd:c/c++ 语法高亮、代码补全、智能感知等,并且让 vsocde 变为 LSP 客户端
- CodeLLDB:c/c++ 调试插件
- CMake:cmake 语法高亮和代码补全
- CMake Tools:cmake 项目构建插件
另外,CodeLLDB安装后会报错,根据提示需要在 github 下载一个 codelldb-linux-x64.vsix 插件,下载后安装即可。
问题汇总
clangd插件配置指定数据库的路径
clangd 插件工作依赖数据库 compile_commands.json 的解析,需要在 clangd 插件的 arguments 增加数据库的路径,参考设置:
"clangd.arguments": [
"--compile-commands-dir=${workspaceFolder}/build"
],
其中,compile_commands.json 在 CMake 配置或者运行后才会生成。如果没有生成,尝试在 CMakeList.txt 中增加参数 DCMAKE_EXPORT_COMPILE_COMMANDS
。
cmake 插件配置修改默认debug配置
若无意外,将 vscode 插件和 Ubuntu 工具都安装后,vscode 就可以使用命令 CMake: Run Without Debugging
,但是 CMake: Debug
或 shift + F5
会提示以下错误:
Configured debug type 'cppdbg' is not supported.
这是由于 vscode 默认调试工具是 cppdbg,在 CMake Tools 中的 Debug Config 中修改为 lldb 即可,参考设置:
"cmake.debugConfig": {
"type": "lldb",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [],
"cwd": "${workspaceFolder}"
}
然后就可以愉快的调试啦。