大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/jintongxu。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。
一、环境
neovim–0.9.4
mason的clangd LSP
二、问题
当用nvim打开linux源码文件时候会出现下列的情况,找不到对应的结构定义,也索引不到对应的头文件,在对应结构按ctrl + ]
也进入不了对应的结构。
三、解决
最后在Reddit上发了篇求助帖子,有个外国友人解决了这个问题。他给推荐了一篇文章Linux Kernel – How to setup your editor
首先编译内核
在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更新完成索引就行了。