使用VSCode clangd插件进行linux内核代码阅读和嵌入式开发


在进行 Linux 内核代码阅读和嵌入式开发时,选择合适的开发工具至关重要。VSCode 是一个流行的跨平台编辑器,并且它的扩展生态系统非常强大。在这篇博客中,我们将介绍如何使用 VSCode Clangd 插件来提高 Linux 内核代码的阅读和嵌入式开发效率。

Clangd 是一个基于 Clang 的语言服务器,它提供了代码智能感知和导航功能。通过与 VSCode 集成,可以实现以下功能:

  1. 代码补全和自动提示:Clangd 可以根据代码上下文提供准确的补全建议和自动提示,帮助开发者快速编写代码。

  2. 代码跳转和导航:Clangd 可以识别代码中的符号引用、函数调用等,并支持跳转到定义、查看声明等操作,便于阅读和理解复杂的内核源代码。

  3. 实时错误和警告检查:Clangd 可以实时检查代码中的语法错误、潜在问题和警告信息,帮助开发者及早发现和修复问题。

  4. 重构支持:Clangd 提供了一些重构功能,如重命名变量、提取函数等,可以简化代码重构的过程。

要使用 Clangd 插件进行 Linux 内核代码阅读和嵌入式开发,你可以按照以下步骤进行配置:

1. 安装并配置 VSCode 和 Clangd 插件

1.1 下载clangd插件

首先确保你已经安装了最新版本的 VSCode,并在扩展商店中搜索并安装 Clangd 插件。
在这里插入图片描述

配置 Clangd 插件:打开 VSCode 设置(快捷键:Ctrl + ,),搜索 “clangd” 并找到 Clangd 的相关配置项。根据你的需求,可以自定义一些设置,如编译选项、头文件路径等。

1.2 下载clangd安装包

我放在百度网盘里了(链接:https://pan.baidu.com/s/1R-pYpKz489hFZa-Z6CD9KQ
提取码:9jtm)
在这里插入图片描述
在这里插入图片描述

1.3 配置插件的设置

1.3.1 点击齿轮

在这里插入图片描述

1.3.2 点击extension settings

在这里插入图片描述

1.3.3 设置clangd path

在这里插入图片描述
将clangd设置为刚才下载的安装包的路径,这样clangd就配置好了,但是为什么要下载插件还要下载安装包呢,vscode下载的插件的位置在哪,直接配置下载插件的位置不就行了,这些问题我也没搞清楚,我只是知道vscode插件下载的位置,vscode的插件一般在home目录下的隐藏文件夹.vscode里,但是我好像没找到可执行的clangd文件。
在这里插入图片描述

2. 使用bear命令编译linux源码及自己的代码

2.1 使用bear命令编译linux源码

book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make 100ask_imx6ull_defconfig 
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ bear make zImage -j4

我的是韦东山imx6ull开发板,只需在第二项中加入bear命令即可,没有安装bear的话sudo装一下,编译完成之后就会有一个compile_commands.json文件,使用vscode open folder打开源码文件,随便打开一个.c文件,clangd会自动索引,会自动生成一个隐藏文件夹
在这里插入图片描述

然后就是把linux源码文件和自己的代码放到同一个工作区,上边已经打开linux源码文件夹了,vscode将文件夹作为一个工作区,现在就是将工作区另存为,因为我们不可能把自己写的代码加到linux源码里,所以要先另存为,然后把自己的代码文件夹加进来
在这里插入图片描述
我是存到驱动学习的目录里了,名字的话我没改,xunwei文件夹是我写的代码,
在这里插入图片描述

然后将xunwei文件夹加进来
在这里插入图片描述
目前的一个目录结构大概就是这样
在这里插入图片描述

2.2 使用bear命令编译自己的代码

编译自己的代码的时候也要用bear make编译,才会生成.json文件
在这里插入图片描述

2.3 最重要的一点

查看自己的交叉编译器是什么
在这里插入图片描述
修改json里边的"cc"为"“arm-linux-gnueabihf-gcc”,注意是全部修改,ctrl+F进行全部替换,我之前就是没有全部替换,出现问题了。

总结:

虽然还是有好多不理解的,但是这个步骤做下来应该是可以正常进行代码跳转、补全了,现在你可以开始浏览和阅读 Linux 内核代码了!Clangd 将会为你提供代码补全、跳转等功能,极大地提升了代码的阅读和理解效率。

无论是专注于代码阅读还是进行嵌入式开发,Clangd 插件都是一个强大的辅助工具。希望本篇博客能帮助你快速上手并充分利用这个插件,提升你的 Linux 内核代码开发能力!

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值