前言
Ubuntu20 系统下,使用 vscode 和 clangd 来进行代码补全和拼写检查.
安装 vscode
直接从 Ubuntu 的应用商店下载 vscode.
安装 clangd
$ sudo apt install clangd
安装 vscode 插件-clangd
vscode 安装 clangd 插件
不需要对 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 寻找答案.
大概是 clangd 和 gcc 的一些参数没有兼容.使用 gcc 交叉编译的时候,-march 和-mabi 参数不能被 clangd 识别.
只需要在当前执行 make 的目录下,创建一个.clangd 文件.
添加下面的内容即可
CompileFlags:
Remove: [-march=*, -mabi=*]
- 外部库跳转的问题
需要将.clangd 和compiledb make
生成的compile_commands.json
文件复制到库的顶级目录即可.
不建议这么做,因为不同的项目compile_commands.json
文件不一样.