如何在vscode中优雅的浏览Linux Kernel源码
•
近期需要写 Linux kernel 相关的内容,对于这样大型的 C+Makefile 项目,vscode 中的 C/C++ 插件不能够很好的做代码跳转。
我们使用 clangd 进行代码的分析
步骤
clangd需要知道代码的编译参数才能够对代码进行 index。对于基于 Makefile 的项目,可以使用 bear 生成 compile_commands.json ,其中包含了代码的编译参数信息。
安装 bear clangd
如果使用的是别的系统,或者需要特定版本的 bear 或 clangd,可以自行寻找安装方法。
生成 compile_commands.json
在这之后,可以在 kernel 根目录中找到 compile_commands.json 。这一般很大。
禁用 C/C++ 插件
首先需要在 vscode 扩展列表中禁用 C/C++ 插件,这和 clangd 插件冲突。
安装 clangd 插件
在 vscode 插件商店中搜索 clangd,安装。
设置 clangd 插件
一般来说,我们不需要进行全局设置。而在 .vscode/settings.json 中,可以针对于本工作区进行设置。
将 .vscode/settings.json 添加以下内容
--compile-commands-dir=${workspaceFolder} 使clangd能识别到 compile_commands.json
完成
重启 vscode 后,就可以在 vscode 中方便地进行函数跳转啦。