vscode clang-clangd-lldb-cmake
环境:ubuntu22.04
clang是LLVM团队出的编译器,clangd是lsp。据说更好用,慕名而来尝试。
配置
clang
1 | sudo apt install clang |
安装完成后尝试直接编译会找不到标准库,-v
选项能看到clang尝试寻找的是/usr/include/c++/12:
1 | clang++ main.cpp -v |
而现在只有/usr/include/c++/11目录,于是安装c++12库
1 | sudo apt install libstdc++-12-dev |
现在可以编译成功
clangd
clangd原本也是apt安装的15版,在vscode上运行效果不好。现在是vscode先装clangd插件,然后重开vscode会提示没有clangd,通过提示安装的18版,不会自动链接到/usr/bin下。
用户配置在~/.config/clangd/config.yaml
项目配置在project/.clangd
vscode
在网上找了一份配置,注释是原模原样的。放到setting.json文件中。
1 | "clangd.arguments": [ |
比较重要的是这一条,这样编译器默认找的标准库clangd也能找到
1 | "--query-driver=/usr/bin/clang++*", |
现在是配在vscode的setting.json,理论上也可以把配置写到用户clangd配置。
1 |
|
这部分仍有问题请看官方文档
cmake
1 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON) |
加上这条,运行cmake会生成compile_commands.json,可以打开看看里面就是编译指令。clangd也会根据这个来找inlcude目录,这样项目内的头文件就能被找到
lldb
1 | sudo apt install lldb |
vscode安装插件CodeLLDB
根据cmake-tools官方仓库的说明,只有cpptools内置的debugger可以快速启动(ctrl+f5),也就是使用下方的小虫子按钮,其他调试器都要通过配置launch.json,按f5来启动
参考官方仓库的markdown ,lldb的launch.json配置如下:
lldb-mi被移出lldb项目了,需要自己从github拉下来编译。
1 | { |
参考这篇博客
其他问题
第一次重启vscode clangd没找到第三方库Eigen和fmt,但理论上compile_commands.json中有它们的路径,现在没有复现这个问题。
参考:
- Title: vscode clang-clangd-lldb-cmake
- Author: Endless_daydream
- Created at : 2024-05-04 14:28:13
- Updated at : 2024-05-04 21:08:52
- Link: https://endless_daydream.gitee.io/2024/05/04/vsc-clang-clangd/
- License: This work is licensed under CC BY-NC-SA 4.0.