Vscode、Clangd、RemoteSSH——环境配置
本文最后更新于 2024年6月7日 中午
使用场景:Windows 端 Vscode 使用 RemoteSSH 插件远程连接到 fedora 系统,并且项目源码是在 fedora 上。
1 安装 bear
sudo dnf install bear
2 安装 clang、clangd
sudo dnf install clang
sudo dnf install clang-tools-extra
3 配置 VScode Clangd 插件
需要先将 VScode 中的所有 C/C++ 插件禁用或卸载
在 VScode 的插件里面搜索 “Clangd” 并且安装。
安装完毕后,打开 VScode 设置:
我是在远程中设置的,打开远程的 settings. json 文件,配置如下:
1 |
|
- “clangd.path” 使用
which clangd
命令查看: - “clangd.arguments” 的 –compile-commands-dir 填你的项目源码根目录
- “clangd.arguments” 的 –query-driver 填交叉编译器路径
- “clangd.fallbackFlags” 中
/home/jw/develop/linux
替换成你的项目路径 - “clangd.fallbackFlags” 中
arch/arm64/include
、arch/arm64/include/generated/
使用 arm64 架构,根据自己的开发板架构来
4 编译项目生成 compile_commands.json
文件
重新编译 kernel 镜像,先 clean 项目再编译:
1 |
|
编译完后会在项目根目录下生成 compile_commands.json
文件:
将所有的 /usr/bin/gcc
替换成你的交叉编译器,我的是 /usr/bin/aarch64-linux-gnu-gcc
VIM 中使用 :%s#/usr/bin/gcc#/usr/bin/aarch64-linux-gnu-gcc#g
命令替换。
4.1 创建 .clangd
文件
在项目根目录下创建 .clangd
文件,内容如下:
1 |
|
其中的 Remove 是为了忽略 gcc 和 clang 编译器不兼容而出现的错误。
5 VScode 打开项目
使用 VScode 打开项目:
ok,此时就可以代码提示和补全了!
5.1 处理一些问题
如果配置后不起效,可以在 clangd 的 log 中查看哪里的问题:
具体的问题可以在网上搜索下。
参考文章:VSCode 使用 clangd 构建 Linux 驱动开发环境、clangd: Couldn‘t build compiler instance