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

现代 C++ 开发工作流(VSCode / Cursor)

✅ 推荐的现代 C++ 开发工作流(含 VSCode / Cursor 插件配置)


🧰 一、环境要求

  • C++ 编译器(如 g++clang++
  • CMake(建议 ≥ 3.16)
  • clangd(建议 ≥ 14,最好用系统包管理器安装)
  • VSCode 或 Cursor 编辑器

🪛 二、VSCode 插件安装(适用于 VSCode 和 Cursor)

打开 VSCode 插件市场,安装以下插件:

插件名称说明
clangd由 LLVM 官方维护的语言服务器,提供智能跳转、补全等
CMake Tools用于管理构建配置、运行 cmake 构建
CMake提供 CMakeLists.txt 的语法高亮和智能感知
CodeLLDB(可选)高级调试功能(用于断点、变量查看)
Better C++ Syntax(可选)颜色高亮更强

📝 Cursor 编辑器内置了对 clangd 的支持,只要项目中有 compile_commands.json,通常无需额外配置插件,但可通过设置检查是否启用 clangd


⚙️ 三、clangd 安装与配置

1. 安装 clangd(按平台)

  • macOS(推荐用 Homebrew):
brew install llvm
  • Ubuntu:
sudo apt install clangd-14
  • Windows:

使用 LLVM 官方安装包 安装 clangd,并加入 PATH。

2. VSCode 设置 clangd 路径(可选)

打开 VSCode 设置(Ctrl+Shift+P → Preferences: Open Settings (JSON)),添加:

"clangd.path": "/usr/bin/clangd"  // 或 /opt/homebrew/opt/llvm/bin/clangd

🧱 四、CMake 项目初始化与构建

项目结构建议:

my_project/
├── CMakeLists.txt
├── src/
│   └── main.cpp
├── include/
│   └── mylib.hpp
├── build/                  # 构建输出目录
└── .clangd                # clangd 配置(可选)

执行构建流程:

mkdir -p build
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
make -j
ln -s build/compile_commands.json .  # 可选,VSCode 更好识别

📦 五、.clangd 示例配置(可选)

放在项目根目录的 .clangd 文件中:

CompileFlags:Add: [-Wall, -std=c++17]
Diagnostics:UnusedIncludes: StrictClangTidy:Add: [-checks=modernize-*]

🧭 六、VSCode 项目配置推荐(可选)

.vscode/settings.json 示例:

{"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools","C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json","clangd.arguments": ["--background-index","--clang-tidy"],"cmake.sourceDirectory": "${workspaceFolder}","cmake.buildDirectory": "${workspaceFolder}/build"
}

✅ 七、日常工作流简版回顾

步骤命令 / 操作
初始化构建cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
编译项目make -j 或用 CMake Tools 插件点击构建
清理构建make cleanrm -rf build/
打开项目VSCode / Cursor 自动识别并启用 clangd
写代码 / 跳转 / 补全 / 调试全流程无阻碍
新增源文件写完保存,clangd 会自动索引,无需额外操作

🧠 提示

  • 第一次打开项目:clangd 会慢慢建立 .cache/clangd/index,稍等几秒即可

  • 如果 Cursor 识别不到类型,优先检查:

    • compile_commands.json 是否存在?
    • clangd 是否正确读取?

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

相关文章:

  • 多场景通用车辆计数算法助力暑期交通管理
  • 【质量管理】软件缺陷管理实施方案(专业版)
  • 华为网络整套架构常用配置
  • cacti漏洞CVE-2022-46169复现
  • ThreadLocal使用及其原理和注意点
  • 虚拟机docker elasticsearch启动失败
  • 07 51单片机之定时器
  • react+threejs实现自适应分屏查看/3D场景对比功能/双场景对比查看器
  • 二分查找----6.寻找两个正序数组的中位数
  • 基于深度学习的图像分类:使用Vision Transformer(ViT)实现高效分类
  • Lakehouse x AI ,打造智能 BI 新体验
  • 认识一下Qlib的158因子特征
  • Gitee Test:国产软件测试平台如何筑牢关键领域数字安全屏障
  • PI 思维升级 PI设计的典范转移:从阻抗思维到谐振控制
  • 主要分布在背侧海马体(dHPC)CA1区域(dCA1)的时空联合细胞对NLP中的深层语义分析的积极影响和启示
  • 杂谈:前端开发中的常见问题
  • 【机器学习之推荐算法】基于矩阵分解和损失函数梯度下降的协同过滤算法实现
  • 验证 GitHub Pages 的自定义域(Windows)
  • Power Compiler:漏电功耗、内部功耗、切换功耗及其计算方式(NLPM)
  • 【通识】如何看电路图
  • ATH12K 驱动框架分析
  • Docker容器技术:从入门到精通
  • J2EE模式---数据访问对象模式
  • 电科金仓新一代数据库一体机:以 “云数据库 - AI 版” 引领 AI 时代数据库变革
  • C++中的反向迭代器
  • Linux下使用VSCode配置GCC环境与调试指南
  • 基于单片机的楼宇门禁系统的设计与实现
  • 电商数据采集API与爬虫技术结合的全网比价方案
  • 目前市面上arm64-v8a、armeabi-v7a设备的市占率有多少?为什么x86架构的手机越来越少?
  • Python 数据分析(一):NumPy 基础知识