vscode 安装clangd插件 替代 c++自带插件

news2025/1/12 20:52:38

目录

1. 背景

2. 安装clangd

安装前:禁用c++插件

2.1 clangd插件名称

 2.2 安装

2.3 配置 settings.json

2.4 语言服务器下载

 2.5 安装 cmake tools

 2.6 设置编译选项

3. 生成 compile_command.json

4. 查看使用效果


1. 背景

 vscode c++开大家一般用 vscode 自家出品的c++插件

网络大部分的vcscode c++ 环境搭建也都是讲这个插件的配置,用于提供悬浮提示,代码补全,错误提示,定义声明实现之间的项目跳转等等功能。

先不说导航找实现找引用这种语义分析的基本功能有时候都没办法正确找到实现,速度也一般般,错误和警告也只是有提示,没有quick fix功能,这个功能是能极大提高编程手感的东西,非常好用。

2. 安装clangd

安装前:禁用c++插件

2.1 clangd插件名称

 2.2 安装

 如果没有安装,则使用如下命令安装clang

$ sudo apt install clang
$ sudo apt install -y clang-12

2.3 配置 settings.json

在用户配置文件settings.json增加如下配置

    "clangd.arguments": [
        "--background-index",
        "--compile-commands-dir=build",  //compile_command.json相对路径,cmake默认生成在build,自行配置
        "-j=12",
        "--all-scopes-completion",
        "--completion-style=detailed",
        "--header-insertion=iwyu",
        "--pch-storage=memory",
        "--cross-file-rename",
        "--enable-config",
        "--fallback-style=WebKit",
        "--pretty",
        "--clang-tidy",
        // 网上别人配置clang++,但我这边windows、linux实测不加这行也没啥问题,可能mac可能需要另外加
    	"--query-driver=/usr/bin/clang++",
    ],

2.4 语言服务器下载

使用命令 ctrl + shift + p 调用

  • 安装clangd安装包

 安装如下安装包

  •  自定义配置

生成文件,输入自己的个性化配置,也可以保留默认为空,不设置

 2.5 安装 cmake tools

 2.6 设置编译选项

  • 方法1

  •  方法2

在CMakeLists.txt文件中设置参数

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

3. 生成 compile_command.json

使用camke编译

# 当前在src目录
$ cd ../
$ mkdir build
$ cd build
$ cmake ../

 编译完成,查看build目录下生成compile_command.json文件,这时候就可以使用clangd跳转了

4. 查看使用效果

  • 自动补齐
  • IWYU

include-what-you-use,又是一个非常给力的一个功能。
比如写个mutex,我们必须自己手动转到文件顶部手动include,有时候有些还得查查需要的头文件名叫啥,代码写起来就是不丝滑爽快。

有了IWYU,就可以自动添加头文件,这种写代码你就可以专注于业务,减少找头文件切换行include的操作,非常好用

  •  quick fix

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

磨金石教育摄影技能干货分享|乡愁摄影作品欣赏

乡愁是是什么? 我们走在异乡的街道上,人声嘈杂的一瞬间, 或许是某个角落,或许是某个人的声音, 让你感到无比的熟悉,在你的记忆深处掀起了一阵阵浪花。 这个熟悉的感觉就是乡愁 它可以是家乡的一棵树 …

JUC(5) : ForkJoinPool | 线程的极致管理

一、前言 前文介绍了线程的异步编排工具类 CompletableFuture 的使用,使用它能够很好的完成线程任务的编排工作,但同时,我们也注意到,其使用的默认线程池是 ForkJoinPool.commonPool() 的方法。则这个线程池是共用的,…

一个普通前端的2022年终总结:多病的一年

多病 用一个词总结我的2022 ,毫无疑问是【多病】。 翻看挂号记录,今年累计跑了19次医院,除去定期的脱发复查、尿常规复查外,其他还得了皮肤病、急性咽炎、筋膜炎、结膜炎、肾结石、慢性胃炎、胸闷,体验过了无法忍受的…

基于java+springmvc+mybatis+jsp+mysql的网络作者与美工交流平台

项目介绍 本次设计任务是要设计一个网络作者与美工交流平台,通过这个系统能够满足网络作者与美工交流信息的管理及版主的网络作者与美工交流信息管理功能。系统的主要功能包括:主页,个人中心,用户管理,版主管理&#…

text文本属性

text文本属性 源代码 color color属性用于定义文本的颜色,有预定义的颜色值(red, blue, yellow)、十六进制(#FF0000, #FF6600,#29D794)、RBG代码(rgb(255,0,0)或rgb(100%,0%,0%)) text-align text-align属性用于设置元素内文本的水平对…

R语言对BRFSS数据探索回归数据分析

执行摘要 最近我们被客户要求撰写关于BRFSS的研究报告,包括一些图形和统计输出。该项目包括探索一个现实世界的数据集-CDC的2013年 行为风险因素监视系统 -并针对三个 选择的研究问题创建报告。 选择的研究问题及其各自的结果是: 被访者对其健康状况…

Redis框架(一):Redis入门和Jedis连接池

Redis入门和Jedis连接池:基本介绍实例Demo源码分析SpringCloud章节复习已经过去,新的章节Redis开始了,这个章节中将会回顾Redis 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库在原有基础上加入一些设计模式,st…

c#扩展方法

1、前言: 通常,我们想要向一个类型中添加方法,可以通过以下两种方式: 修改源代码。 在派生类中定义新的方法。 但是以上方法并不是万能的,我们并不能保证拥有一个类型的源码,也并不能保证这个类型可以让我们继承(如结构,枚举,String等等)。但是C#提供了一个办法,…

教你如何写一个符合自己需求的小程序日历组件

1|0 前言 很多时候,我们生活中会有各种打卡的情况,比如 keep 的运动打卡、单词的学习打卡和各种签到打卡或者酒店的入住时间选择,这时候就需要我们书写一个日历组件来处理我们这种需求。 但是更多时候,我们都是网上找一个插件直…

【HBase】【一】windows搭建源码开发环境

目录环境配置1. Windows安装Cygwin2. 安装ProtocolBuffers3. 启动zookeeper4. 搭建Hadoop环境5. 编译Hbase源码6. 启动HRegionServer7. 启动HMaster8. 启动HShell客户端环境配置 系统:windows10 IDE: Eclipse hadoop: 3.3.4 hbase: 2.4.15 java: 17 1. Window…

pytest学习——pytest插件的7种用法

1.pytest-repeat 重复跑 安装包 pip install pytest-repeat第一种用法: 装饰器 pytest.mark.repeat(次数) 示例代码 import pytest pytest.mark.repeat(5) def test_001(): assert 12 if __name__ __main__: pytest.main([-sv,__file__])第二种用法&#xff1a…

[附源码]Python计算机毕业设计SSM基于数据挖掘的毕业生离校信息系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 Ma…

基于牛顿方法在直流微电网潮流研究(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅本科计算机专业,研究生电气学硕…

拆解理想汽车Q3财报:收入增速继续下滑,年内两次更换首席技术官

12月9日,理想汽车(NASDAQ:LI、HK:02015)发布截至2022年9月30日止季度(即2022年第三季度)的未经审计财务业绩。财报显示,理想汽车2022年第三季度的收入为93.42亿元,同比增加20.2%,低于…

(九)Vue之侦听/监听/监视属性

文章目录普通实现监视属性实现Vue里配置监视属性Vue外配置监视属性配置属性immediate配置deep(深度监视)配置普通监视监视多级结构中某个属性的变化监视多级结构中所有属性的变化监视属性简写watch配置简写$watch配置简写监视属性vs计算属性Vue学习目录上…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java农产品推广平台98966

对于计算机专业的学生最头疼的就是临近毕业时的毕业设计,对于如何选题,技术选型等这些问题,难道了大部分人,确实,还没毕业的学生对于这些问题还比较陌生,只有学习的理论知识,没有实战经验怎么能独自完成毕业设计这一系列的流程,今天我们就聊聊如何快速应对这一难题. 比较容易的…

ITK 形态学中的开运算和闭运算 腐蚀 膨胀

一. 图像形态学处理 —— 膨胀和腐蚀 腐蚀在二值图像的基础上做“收缩”或“细化”操作; 膨胀在二值图像的基础上做“加长”或“变粗”的操作。 什么是二值图像呢?把一幅图片看做成一个二维的数组,那么二值图像是一个只有0和1的逻辑数组,我们…

vertical-align属性

vertical-align属性 CSS的vertical-align属性使用场景,经常用于设置图片或者表单(行内块元素)和文字垂直对齐 用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效 源代码 语法: vertical-align { baseline | top | …

序——在linux下学习C语言

目录 在Linux下学习C语言的前提。。。 一、Linux的一些常见命令 二、Linux中VI和VIM的一些命令操作 1、在VIM中控制光标 2、vim中的插入模式 3、退出插入模式的方法 4、在VIM模式中的删除命令 5、撤销命令 6、 粘贴和拷贝命令 7、查看文件信息和寻找另一半括号 8、缩…

十万部冷知识:日本国歌为什么像哀乐?

大家在世界杯上看日本队比赛的时候,有没有感觉他们的国歌跟哀乐似的,听着就跟在办葬礼一样。其实,这还真不是像与不像的问题,而是因为它确实是一首挽歌。 这首歌叫《君之代》,出自于《古今和歌集》,是在天皇…