赞
踩
在使用微软的C/C++插件时,遇到较大项目时,代码提示速度非常的慢,这时可以使用clangd
版本选择:Linux
github仓库: https://github.com/clangd/clangd/releases
解压下载好的安装包:
unzip clangd-linux-15.0.6.zip
然后进入该文件夹:
cd clangd_15.0.6/
将bin文件夹下的clangd移动到 /usr/bin 目录下:
cd bin/
sudo mv clangd /usr/bin/
将 lib 目录下,拷贝至 /usr/local/lib 目录下:
cd …/lib/
sudo mv clang /usr/local/lib
安装插件:
clangd扩展设置clangd路径:文件 -> 首选项 -> 设置
在搜索框中输入:@ext:llvm-vs-code-extensions.vscode-clangd Path
此时已经设置完成,重启一下VSCode
创建一个 main.c 文件,内容为:
#include <stdio.h>
int main()
{
printf("Hello World !\n");
return 0;
}
此时会报一个错误
In included file: ‘stddef.h’ file not foundclang(pp_file_not_found)
解决办法如下:
在clangd扩展设置界面找到 Clangd: Fallback Flags
添加一下内容
-xc //clangd默认检测的源文件为c++,手动设置为检测c
-std=c11 //c语言标准
-I/usr/lib/gcc/x86_64-linux-gnu/11/include //clangd有些库指向有问题,手动添加一下文件路径
注意: 这个路径 /usr/lib/gcc/x86_64-linux-gnu/11/include
根据自己的电脑路径来添加
此时在重启一下VSCode,再次打开 main.c 会发现错误消失了
目前正在学习IMX6ULL开发,就以IMX6ULL裸机例程——irq中断处理为例
文件目录如下:
. ├── bsp │ ├── beep │ │ ├── bsp_beep.c │ │ └── bsp_beep.h │ ├── clk │ │ ├── bsp_clk.c │ │ └── bsp_clk.h │ ├── delay │ │ ├── bsp_delay.c │ │ └── bsp_delay.h │ ├── exti │ │ ├── bsp_exti.c │ │ └── bsp_exti.h │ ├── gpio │ │ ├── bsp_gpio.c │ │ └── bsp_gpio.h │ ├── int │ │ ├── bsp_int.c │ │ └── bsp_int.h │ ├── key │ │ ├── bsp_key.c │ │ └── bsp_key.h │ └── led │ ├── bsp_led.c │ └── bsp_led.h ├── build │ ├── bsp_beep.o │ ├── bsp_clk.o │ ├── bsp_delay.o │ ├── bsp_exti.o │ ├── bsp_gpio.o │ ├── bsp_int.o │ ├── bsp_key.o │ ├── bsp_led.o │ ├── __int.bin │ ├── __int.dis │ ├── __int.elf │ ├── __int.map │ ├── main.o │ └── start.o ├── imx6u.lds ├── imx6ull │ ├── cc.h │ ├── core_ca7.h │ ├── fsl_common.h │ ├── fsl_iomuxc.h │ ├── imx6ull.h │ └── MCIMX6Y2.h ├── imxdownload ├── load.imx ├── Makefile └── project ├── main.c └── start.S
打开之后头文件会显示没有该文件,此时我们设置一下该项目的头文件路径
首先在项目的根目录下创建一个 .vscode 文件夹,并在该文件夹下创建一个 settings.json 文件
在 settings.json 中写入以下内容
{ "clangd.fallbackFlags": [ "-xc", "-std=c11", //C语言标准 // 第三方依赖的头文件目录 "-I/usr/lib/gcc/x86_64-linux-gnu/11/include", "-I${workspaceFolder}/project", "-I${workspaceFolder}/imx6ull", "-I${workspaceFolder}/bsp/led", "-I${workspaceFolder}/bsp/delay", "-I${workspaceFolder}/bsp/clk", "-I${workspaceFolder}/bsp/beep", "-I${workspaceFolder}/bsp/gpio", "-I${workspaceFolder}/bsp/key", "-I${workspaceFolder}/bsp/int", "-I${workspaceFolder}/bsp/exti", ], }
此时重新打开该项目,头文件就不会再报错了,也支持函数跳转了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。