neovim调试linux内核过程中索引不到对应头文件问题

一、环境

neovim--0.9.4
mason的clangd LSP

二、问题

当用nvim打开linux源码文件时候会出现下列的情况,找不到对应的结构定义,也索引不到对应的头文件,在对应结构按ctrl + ]也进入不了对应的结构。
problems-in-reading-linux-source-code-with-neovim-v0-d5uLE8zd1Ms4YgLPSmeG7UWDsfjeq1KjRL3ZhuzSxMw

三、解决

最后在Reddit上发了篇求助帖子,有个外国友人解决了这个问题。他给推荐了一篇文章Linux Kernel – How to setup your editor

注意: 默认已经安装好了Linux的编译环境。

首先编译内核

在linux源码根目录下运行下面命令,编译内核。

make menuconfig

make CC=clang

注意: 如果是在ubuntu下编译内核,需要下载下面的依赖。

sudo apt install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf

生成compile_commands.json文件

也是在根目录运行。

python3 ./scripts/clang-tools/gen_compile_commands.py

然后打开nvim更新完成索引就行了。

2

我的neovim环境配置

THE END