当前位置:   article > 正文

VSCode使用Clangd_vscode clangd

vscode clangd

前言

在使用微软的C/C++插件时,遇到较大项目时,代码提示速度非常的慢,这时可以使用clangd

1、系统安装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

2、VSCode 安装 Clangd

安装插件:
在这里插入图片描述
clangd扩展设置clangd路径:文件 -> 首选项 -> 设置

在搜索框中输入:@ext:llvm-vs-code-extensions.vscode-clangd Path

在这里插入图片描述此时已经设置完成,重启一下VSCode

3、解决 clangd bug

创建一个 main.c 文件,内容为:

#include <stdio.h>

int main()
{
    printf("Hello World !\n");

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

此时会报一个错误

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 会发现错误消失了

4、打开工程文件

目前正在学习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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

打开之后头文件会显示没有该文件,此时我们设置一下该项目的头文件路径

首先在项目的根目录下创建一个 .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",
      ],
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

此时重新打开该项目,头文件就不会再报错了,也支持函数跳转了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/239924
推荐阅读
相关标签
  

闽ICP备14008679号