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

Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + CMake)

Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + CMake)

知乎原文参考地址1

与 VSCode 官方文档配置 相比拥有的优势

  • Clangd 具有更优秀的性能,微软官方 Cpptools 的代码提示功能有明显延迟
  • Clangd 提供更精准的「转到定义」、「重命名符号」、「自动添加头文件」等功能(Jetbrains 家大名鼎鼎的 CLion 也是基于 Clangd)
  • Clang-Tidy 提供了强大的「静态检查」支持,并对于部分代码提供「快速修复」功能。详情请见 Clang-Tidy Checks。本文主要添加了对于「Google 开源项目风格指南」「Cpp Core Guidelines」和性能、潜在的 bug、移植性、现代 C++ 的检查
  • 微软官方 Cpptools 仅提供 Debug 功能(也可以使用 CodeLLDB 插件进行调试)

vscode插件推荐

在官网安装 Visual Studio Code 后,安装如下拓展:

  • clangd(必装,安装后建议通过它下载 clangd 二进制包,或者自己手动折腾安装)
  • CodeLLDB(必装,也可以使用C/C++ 插件进行调试)
  • CMakeTool(必装, CMake 插件)
  • Catppuccin Noctis (我个人非常喜欢的一款主题)
  • Error Lens(更直观的错误提示)
  • Project Manager(收藏、识别和管理你的工作空间和项目文件夹)
  • Vim(Vim 模拟器,不知道 vim 是什么不要安装)
  • GitLens(Git插件,可选)
  • Git Graph(Git插件,可选)
  • GitHub Copilot(Github 开发的代码智能提示插件,不建议初学者使用)

注意:「C/C++」插件和「clangd」插件共存,VSCode 会提示发生冲突,请选择「Disable IntelliSense」

compiled_commands.json

参考文章地址2
clangd是基于 compile_commands.json 文件来完成对项目的解析,所以需要针对项目生成 compile_commands.json 文件。

cmake工程

如果通过 cmake 方式编译项目,在 CMakeLists.txt 文件中 添加 set(CMAKE_EXPORT_COMPILECOMMANDS ON),之后cd build && cmake ..,可以发现在 build 目录下已经生成了 compile_commands.json 文件。

makefile工程

如果是基于 make 方式来编译,那么可以先安装 pip install compiledb,之后在当前目录下运行 (a) compiledb -n make -C build (b) compiledb make -C build 这两个命令中的其中一个来生成 compile_commands.json 文件,其中前者不会执行真正的 make 编译命令。

$ pip install compiledb
$ compiledb -n make -C build
http://www.lryc.cn/news/231961.html

相关文章:

  • 年产200万件的超级工厂投产!巨头「闭环」汽车电子全产业链
  • 智能穿戴AR眼镜主板方案定制_MTK平台AR智能眼镜PCB板开发
  • 【入门Flink】- 11Flink实现动态TopN
  • 现在做跨境电商还需要全球代理IP吗?全球代理IP哪家靠谱?
  • 微服务的常用组件
  • Android问题笔记四十五:解决SeekBar操作thumb周围产生的圆形阴影/灰色阴影/白色圆圈的解决办法
  • AI从入门到精通,什么是LLMs大型语言模型?
  • 优测云测试平台 | 有效的单元测试(下)
  • CUDA安装
  • 【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程
  • 网站使用什么协议比较好
  • 18. 机器学习——集成学习
  • SimaPro生命周期评估建模与碳足迹分析流程
  • 我的项目分享(不喜勿喷)
  • PyTorch:张量与矩阵
  • 传统广电媒体为何选择上云?有何优势?
  • 系列十、堆参数调优
  • sqlite3简单使用
  • 实测文心一言4.0,真的比GPT-4毫不逊色吗?
  • 损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)
  • 基于springboot的医护人员排班系统 全套代码 全套文档
  • 【YOLOX简述】
  • 一文带你深入浅出Web的自动化测试工具Selenium【建议收藏】
  • Django模版层
  • 同一个IP地址可有不同的写法?
  • 《Effective C++》条款13
  • 【入门Flink】- 09Flink水位线Watermark
  • 华为交换机的基本配置,看完秒懂
  • spark与scala的对应版本查看
  • 影响力|子芽首创代码疫苗技术获评“年度技术突破者”