当前位置: 首页 > news >正文

mac vscode 使用 clangd

C++ 的智能提示 IntelliSense 非常不准,我们可以使用 clangd

clangd 缺点就是配置繁琐,优点就是跳转和提示代码精准

开启 clangd 之后会提示你关闭 IntelliSense

1、安装插件 clangd

搜索第一个下载多的就是

2、配置 clangd 可执行程序路径

clangd 插件依赖 clangd 可执行程序,如果没安装 clangd 可自行百度安装,命令行运行下面命令可以知道自己是否已经安装了 clangd

clangd --version

设置——拓展——clangd

3、配置 vscode 的 setting.json 文件

追加

"clangd.arguments": ["--compile-commands-dir=${workspaceFolder}/build","--background-index","--clang-tidy","--log=verbose","--pretty","--function-arg-placeholders=true","--header-insertion-decorators","--header-insertion=never","--inlay-hints","-j=12"
]

这个配置,不同攻略都大同小异,但是我们要关注一个配置项

--compile-commands-dir=${workspaceFolder}/build

这个表示 clangd 将会在工作区目录(即左侧资源管理器根目录)的 build 目录下寻找 compile_commands.json,即 (下一章讲这个文件获取方式)

vscode 工作区/build/compile_commands.json

4、获取 compile_commands.json 文件

参考

C/C++工程生成编译数据库文件compile_commands.json-CSDN博客

不同的编译方式,使用不同的命令

拿到 compile_commands.json 后,把该文件放在第3章强调的 build 目录下即可,重启 vs code,(随便打开一个 C 文件)会看到下面栏自动生成索引

以及左边资源管理器自动生成 .cache 文件夹

5、特别提示

clangd 跳转准确的来源是 compile_commands.json 文件,里面记录了各个库函数的编译路径,拿到 compile_commands.json 文件后,需要看看里面的目录是不是有问题

比如里面有路径

-I/Users/test/openssl/include/

务必确保

/Users/test/openssl/include/

路径存在且有效,否则影响跳转准确率

像 cmake 是用 include_directories 指令调整头文件路径的,就需要修改 CMakeLists.txt

参考文档

如何配置C/C++补全环境? - 知乎

vscode配置clangd和clang-format_clangd vscode-CSDN博客

http://www.lryc.cn/news/209510.html

相关文章:

  • DSI及DPHY的学习
  • 环形链表(C++解法)
  • 星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术
  • 【Python机器学习】零基础掌握RandomForestRegressor集成学习
  • FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
  • Megatron-LM GPT 源码分析(一) Tensor Parallel分析
  • 分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测
  • 婚礼的魅力
  • 【计算机网络笔记】DNS报文格式
  • 10月28日
  • 【性能测试】初识 Jmeter 中的 BeanShell
  • Rust实现基于Tokio的限制内存占用的channel
  • 【C++】C++入门(上)--命名空间 输入输出 缺省参数 函数重载
  • 设计模式:原型模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
  • SpringMVC 资源状态转移RESTful
  • verilog vscode linux
  • Postman日常操作
  • 10月份程序员书单推荐
  • 【ChatGPT系列】ChatGPT:创新工具还是失业威胁?
  • C++ 实现定时器的两种方法(线程定时和时间轮算法修改版)
  • 2023mathorcup大数据竞赛选题建议及思路
  • 部署vuepress项目到githubPage
  • ORACLE表空间说明及操作
  • vue使用Element-plus的Image预览时样式崩乱
  • 安装使用vcpkg的简易教程
  • 制作一个简单的C语言词法分析程序
  • Java项目中将MySQL改为8.0以上
  • 软考高项-计算题(2)
  • Centos使用war文件部署jenkins
  • 数据结构和算法——用C语言实现所有排序算法