我将 VS Code 与 clangd 插件一起使用,但找不到
<stdio.h>
。 Clangd 能够毫无问题地解析我项目中的所有源文件。但是某些头文件clangd找不到,而对于其他头文件,clangd找到了错误的。我的编译器是 arm-none-eabi-gcc,所以我希望 clangd 能够解析该开发包中的 .h 文件。我如何让 clangd 搜索 arm-none-eabi-gcc 标头而不是我的系统标头?
答案在clangd文档中.
在 Linux 上,使用此命令查找编译器所在的位置:
which arm-none-eabi-gcc
在我的机器上,这个特定的编译器恰好在这里
/home/ryan/devpkg/arm-none-eabi/bin/arm-none-eabi-gcc
要修复 clangd,您需要在运行
clangd
命令时向它传递一个参数:
clangd --query-driver=/path/to/mygcc
但是用编译器的路径替换
/path/to/mygcc
。
在 VS Code 中,这是通过向 clangd 的设置添加一个参数来完成的:
文件 -> 首选项 -> 设置 -> 工作区(或用户,如果你总是使用这个编译器) -> 扩展 -> clangd -> 参数 -> 添加项目
现在,当您的光标悬停在
stdio.h
上时,它会显示正确的路径: