首页 > 其他分享 >2024年!vscode和clangd的配置

2024年!vscode和clangd的配置

时间:2024-02-21 18:55:19浏览次数:34  
标签:compile clangd vscode make 2024 compiledb 安装

前言

Ubuntu20 系统下,使用 vscode 和 clangd 来进行代码补全和拼写检查.

安装 vscode

直接从 Ubuntu 的应用商店下载 vscode.

安装 clangd

$ sudo apt install clangd

安装 vscode 插件-clangd

vscode 安装 clangd 插件
img

不需要对 clangd 插件进行配置.
不需要对 clangd 插件进行配置.
不需要对 clangd 插件进行配置.

我不是有意 Diss 国内的论坛,只是按照方法一个都不行,在下面评论也没有人回答.

安装一个工具

generates a compilation database for clang tooling.
这个compilation database指的是 compile_commands.json 文件.
这个文件会被 clangd 服务给调用,解析.
有两个工具作为选择,自选其一即可.

  • bear 命令
    安装 bear 命令
$ sudo apt install bear
  • compiledb 命令
    安装 compiledb 需要 python 环境,Ubuntu20 自带 python3,所以就不装了.安装一个 python-pip 就行,安装过 pip 命令就不需要这一步了.
$ sudo apt install python3-pip
  • 用 pip 安装 compiledb
$ pip install compiledb

生成compile_commands.json 文件

进入自己的项目执行 make 命令那里.

  • 示例-伪代码
$ cd $(HOME)/your_project/

通常在这个目录下,我们执行 make 命令.

$ make all

我们现在要用bear或者compiledb命令生成compile_commands.json文件.
只需要在 make 前面加上这个命令即可.

$ bear -- make all

或者

$ compiledb make all

完成!

VSCode 打开项目目录即可.
code completion,compile errors and warnings,include management这些功能都可以使用了.

其它问题

  • 嵌入式/交叉编译的项目
    需要去 clangd 的 GitHub 中,issue 寻找答案.
    img
    大概是 clangd 和 gcc 的一些参数没有兼容.使用 gcc 交叉编译的时候,-march 和-mabi 参数不能被 clangd 识别.
    只需要在当前执行 make 的目录下,创建一个.clangd 文件.
    添加下面的内容即可
CompileFlags:
    Remove: [-march=*, -mabi=*]
  • 外部库跳转的问题
    需要将.clangd 和compiledb make生成的compile_commands.json文件复制到库的顶级目录即可.
    不建议这么做,因为不同的项目compile_commands.json文件不一样.

标签:compile,clangd,vscode,make,2024,compiledb,安装
From: https://www.cnblogs.com/Rabbit-susu/p/18026009

相关文章

  • 【CVE-2024-21626】容器逃逸漏洞修复
    哈喽大家好,我是咸鱼。好久不见,最近有一个很火的CVE——runc容器逃逸漏洞。年前的时候我们已经在测试环境进行了相关操作打算年后线上进行修复。因为今天咸鱼才开工,所以文章也就拖到了现在......
  • 2024-02-21 js 工具类(一行代码)
    1.获取浏览器Cookie的值constcookie=name=>`;${document.cookie}`.split(`;${name}=`).pop().split(';').shift();cookie('_ga');//Result:"GA1.2.1929736587.1601974046"2.将RGB转换为十六进制constrgbToHex=(r,g,b)=>&......
  • 20240221总结
    P4311士兵占领考虑先把棋盘放满,判掉无解,并把问题转化为拿走最多的棋子。这个问题就一眼最大流了,对于行和列分别建M,N个节点,源点向行节点连流量为该行最多可删个数的边,列节点向汇点连该列最多可删个数的边,对于每个可放士兵的(i,j),从行节点i向列节点j连一条流量为1的边,跑最大流......
  • 2024.2.21 LGJ Round
    A你在平面上有\(n\)个点,你每次可以从一个点跳到其右下或左上任意的点,|对每个点\(i\),求所有点到\(i\)至少跳多少次的和。点的坐标值域为\(M=2500\)。\(n\le2.5e5\).我们先考虑某个点,到所有点跳多少次。首先右下,左上都是跳一次即可。我们先考虑右上的点怎么办。我们一定......
  • 2024年2月中国数据库排行榜:PolarDB夺魁首登顶,TiDB攀升回探花
    银装素裹覆大地,春意初醒待来临。2024年2月墨天轮中国数据库流行度榜单出炉,表现最亮眼的无疑是PolarDB,其自23年7月以来一路高歌猛进,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势,OceanBase、TiDB紧接拿下榜眼探花。榜单前十中,开源与商业平分秋色、各家数据库乘云直上,你追我赶......
  • 2024牛客寒假算法基础集训营4
    2024牛客寒假算法基础集训营4比赛地址A.柠檬可乐思路:简单的模拟,按照题目描述判断大小即可Code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineall(x)x.begin()+1,x.end()voidsolve(){ inta,b,k; cin>>a>>b>>k; if(a>=k*b)cout<<&qu......
  • 2024年十大磁力搜索引擎排名下载教程-JAVA
    磁力技术相对比较顶尖的几大磁力厂商推荐使用磁力导航  www.okeyl.com随着互联网的发展,搜索引擎已经成为人们日常生活中必不可少的工具之一。每当我们想查找信息时,我们都会去使用搜索引擎。然而,在众多的搜索引擎中,哪些才是真正有用的呢?下面我们就来探讨一下搜索引擎前十排名。......
  • [WC/CTS2024] 水镜
    [WC/CTS2024]水镜不知道大家还记不记得这样一件事情:当我们要证明一个数列\(\{a_n\}\)单调递增时,只需证\(a_i<a_{i+1}\)。这是我场上的核心思路:如果要说明二元组\((u,v)\)合法,只需使得其中每相邻两项都递增。注意到这题的\(L\)是我们自己定的,所以这里就有一个思路:......
  • 刷题记录_2024寒假2/19~2/21
    P4287[SHOI2011]双倍回文考虑马拉车,但是我不会马拉车怎么办,考虑PAM我们在记录一般的fail之外再记录一个trans指针指向小于等于当前节点长度一半的最长回文后缀然后枚举每个节点#include<bits/stdc++.h>usingnamespacestd;chars[2000001];intlen[2000001],trans[2000......
  • 【2024-02-08】连岳摘抄
    23:59保只要你心中有爱,坚定不移的爱,全心全意的爱,你就能够克服很多乱七八糟的人生难题。                                                 ——罗伯特麦卡蒙当父母老......