clangd在使用arm-none-eabi-gcc时没有找到<stdio.h>和找到错误的<stdint.h>

问题描述 投票:0回答:1

我将 VS Code 与 clangd 插件一起使用,但找不到

<stdio.h>
。 Clangd 能够毫无问题地解析我项目中的所有源文件。但是某些头文件clangd找不到,而对于其他头文件,clangd找到了错误的。我的编译器是 arm-none-eabi-gcc,所以我希望 clangd 能够解析该开发包中的 .h 文件。我如何让 clangd 搜索 arm-none-eabi-gcc 标头而不是我的系统标头?

header arm clangd arm-none-eabi-gcc
1个回答
0
投票

答案在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
上时,它会显示正确的路径:

© www.soinside.com 2019 - 2024. All rights reserved.