2024年!vscode和clangd的配置

前言

Ubuntu20 系统下,使用 vscode 和 clangd 来进行代码补全和拼写检查.

安装 vscode

直接从 Ubuntu 的应用商店下载 vscode.

安装 clangd

$ sudo apt install clangd

安装 vscode 插件-clangd

vscode 安装 clangd 插件
img

不需要对 clangd 插件进行配置.
不需要对 clangd 插件进行配置.
不需要对 clangd 插件进行配置.

我不是有意 Diss 国内的论坛,只是按照方法一个都不行,在下面评论也没有人回答.

安装一个工具

generates a compilation database for clang tooling.
这个compilation database指的是 compile_commands.json 文件.
这个文件会被 clangd 服务给调用,解析.
有两个工具作为选择,自选其一即可.

  • bear 命令
    安装 bear 命令
$ sudo apt install bear
  • compiledb 命令
    安装 compiledb 需要 python 环境,Ubuntu20 自带 python3,所以就不装了.安装一个 python-pip 就行,安装过 pip 命令就不需要这一步了.
$ sudo apt install python3-pip
  • 用 pip 安装 compiledb
$ pip install compiledb

生成compile_commands.json 文件

进入自己的项目执行 make 命令那里.

  • 示例-伪代码
$ cd $(HOME)/your_project/

通常在这个目录下,我们执行 make 命令.

$ make all

我们现在要用bear或者compiledb命令生成compile_commands.json文件.
只需要在 make 前面加上这个命令即可.

$ bear -- make all

或者

$ compiledb make all

完成!

VSCode 打开项目目录即可.
code completion,compile errors and warnings,include management这些功能都可以使用了.

其它问题

  • 嵌入式/交叉编译的项目
    需要去 clangd 的 GitHub 中,issue 寻找答案.
    img
    大概是 clangd 和 gcc 的一些参数没有兼容.使用 gcc 交叉编译的时候,-march 和-mabi 参数不能被 clangd 识别.
    只需要在当前执行 make 的目录下,创建一个.clangd 文件.
    添加下面的内容即可
CompileFlags:
    Remove: [-march=*, -mabi=*]
  • 外部库跳转的问题
    需要将.clangd 文件和compiledb make生成的compile_commands.json文件复制到库的顶级目录即可.
    不建议这么做,因为不同的项目compile_commands.json文件不一样.
posted @ 2024-02-21 18:53  当最后一片树叶落下  阅读(5704)  评论(7编辑  收藏  举报