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

c++环境和vscode常用的一些有用插件

环境

WSL需要安装cmake

在这里插入图片描述

编译器g+±14 应该是包含了所有std:c++23把好像包含部分c++26

在这里插入图片描述

vscode 需要插件cmake

vscode clangd 方便提示吧

在这里插入图片描述

File Watch 插件目的在保存.h/.cpp文件时候自动执行vscode 的cmake吧

在这里插入图片描述

error lens 方便每次显示错误和警告的提示懒得每次点击去看错误

在这里插入图片描述

在这里插入图片描述

Edit Suggest Preview:打开

在这里插入图片描述

Git Graph 的插件还是挺好用的

在这里插入图片描述

在这里插入图片描述

目录

在这里插入图片描述

.clangd

CompileFlags:Add:- -std=c++26- -ferror-limit=0CompilationDatabase: "compile_commands.json"Diagnostics:Suppress:# 抑制“缺少大括号”的警告,主要针对列表初始化写法- missing-braces# 忽略未使用的函数的警告(例如调试工具函数)- unused-function# 忽略结构体未完全初始化的警告(部分字段默认初始化)- missing-field-initializers# 忽略结构体内存对齐相关的 pack 警告- pragma-pack

.clang-format

BasedOnStyle: Google # 或者其他基础风格,比如 LLVM、Mozilla 等
IndentWidth: 4       # 缩进宽度
TabWidth: 4          # Tab 显示宽度
UseTab: Never        # 使用空格代替 Tab
ColumnLimit: 100     # 设置最长换行长度为 120 个字符
BreakBeforeBraces: Attach # 大括号样式
SortIncludes: false
AccessModifierOffset: -4           # 类访问修饰符(public/private)缩进的偏移

settings.json

{"editor.wordWrap": "on","C_Cpp.intelliSenseEngine": "disabled","clangd.path": "/usr/bin/clangd","clangd.arguments": ["--enable-config","-log=verbose","-pretty","--background-index","--compile-commands-dir=/home/xiaqiu/test/build","--header-insertion=never","--function-arg-placeholders=true"],"editor.tokenColorCustomizations": {"textMateRules": [{"scope": [//following will be in italic"function","entity.name.type.class", //class names"constant", //String, Number, Boolean…, this, super"keyword","storage"],"settings": {"fontStyle": "bold",// "foreground": "#240ab4"}},{"scope": "comment","settings": {"fontStyle": "bold","foreground": "#c8c8c8"}},{"scope": ["entity.name.type.class"],"settings": {"foreground": "#03A1FE","fontStyle": "bold"},},{"scope": "entity.name.function", // 定义函数调用的范围"settings": {// "foreground": "#d58728f7","fontStyle": "bold",}}],},"editor.formatOnSave": true,"editor.fontFamily": "Fira Code","editor.guides.bracketPairs": true,"cmake.debugConfig": {"console": "internalConsole"},"filewatcher.commands": [ //需安装file watcher 插件{//保存自动编译当前的文件"match": "\\.(cpp|h)$","vscodeTask": ["cmake.build"], //cmake 插件的命令"runInBackground": true,"event": "onFileChange"}]
}

上层CMakeLists.txt

cmake_minimum_required(VERSION 3.8)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
project("study")
add_subdirectory("src")

下层CMakeLists.txt

# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)# 设置项目的名称和使用的编程语言
project(MyCppProject CXX)# 设置 C++ 标准为 C++26
set(CMAKE_CXX_STANDARD 26)# 使用 file(GLOB ...) 获取当前目录下所有 .cpp 文件
file(GLOB SOURCES "*.cpp")# 排序 SOURCES 列表(字典顺序)
list(SORT SOURCES)# 获取字典顺序最大的文件
list(LENGTH SOURCES LIST_SIZE)if(LIST_SIZE GREATER 0)set(MAX_NUMBER -1) # 初始化最大数字为负值set(MAX_FILE "") # 初始化最大文件为空字符串# 遍历 SOURCES 列表中的所有文件foreach(FILE ${SOURCES})# 从路径中提取文件名部分get_filename_component(FILENAME ${FILE} NAME)# 获取文件名中的数字部分string(REGEX MATCH "[0-9]+" FILE_NUMBER "${FILENAME}")# 如果提取到的数字大于当前最大数字,更新最大数字和对应的文件if(FILE_NUMBER GREATER ${MAX_NUMBER})set(MAX_NUMBER ${FILE_NUMBER})set(MAX_FILE ${FILE})endif()endforeach()# 输出最大的文件和数字message(STATUS "最大数字对应的文件是: ${MAX_FILE}")message(STATUS "提取的最大数字是: ${MAX_NUMBER}")# 编译提取数字最大值对应的文件if(MAX_FILE)message(STATUS "正在编译文件: ${MAX_FILE}")# 这里可以添加编译命令,例如:# add_executable(${MAX_FILE} ${MAX_FILE})else()message(WARNING "没有找到包含数字的文件")endif()
else()message(WARNING "没有 .cpp 文件被发现")
endif()# 创建可执行文件
add_executable(test ${MAX_FILE})

debug 发现没有gdb 安装gdb

在这里插入图片描述

在这里插入图片描述

查看二进制需要hex edit插件

在这里插入图片描述

在这里插入图片描述

值得注意的地方

在这里插入图片描述

相关选项推荐

clangd 有很多有用的启动参数,可以极大提升你的 C/C++ 开发体验,特别是在 VS Code 或其他支持 LSP 的编辑器中。

以下是一些 常用且推荐的 clangd 参数,并附上说明和用途:


🔧 常用 & 推荐 clangd 启动参数

参数说明推荐值
--completion-style=控制补全显示的详细程度detailed
--function-arg-placeholders补全函数时是否插入参数占位符true ✅(默认)
--header-insertion=控制自动插入头文件iwyu / never
--header-insertion-decorators是否显示头文件建议来源(如 #include <vector>true(默认)
--background-index在后台为整个项目建立索引,加速跳转true
--pch-storage=控制 PCH(预编译头文件)缓存存储方式memory(快)
--clang-tidy启用 clang-tidy 静态检查true
--suggest-missing-includes当找不到符号时,建议包含头文件true
--ranking-model自动补全排序方式decision_forest(更智能)
--log=设置日志输出verbose(调试用)

📌 参数详细说明:

1. --completion-style=detailed

显示补全项的完整类型签名、返回值,帮助你更快理解函数。

2. --clang-tidy

运行 clang-tidy 检查,给你静态代码质量建议(如风格、性能、bug 潜在点)。

✨ 可以配合 .clang-tidy 文件进行自定义检查。

3. --background-index

为整个项目自动生成索引,而不是仅索引打开的文件。大大提升跳转(Go to definition)、查找引用速度。

4. --pch-storage=memory

使用内存缓存 PCH,加快补全速度(尤其是大型项目)。缺点是占用更多内存。

5. --header-insertion=iwyu

“Include What You Use” 模式,clangd 会在你用到符号时,自动推荐需要 #include 的头文件。

6. --suggest-missing-includes

如果你用到了某个类型但没包含对应头文件,clangd 会提示你并建议修复。

7. --ranking-model=decision_forest

启用更智能的补全排序模型(使用机器学习技术),比默认排序更符合实际需求。


⚙️ 示例:VS Code 中启用这些参数

编辑你的 settings.json

"clangd.arguments": ["--background-index","--clang-tidy","--completion-style=detailed","--function-arg-placeholders=true","--pch-storage=memory","--header-insertion=iwyu","--suggest-missing-includes","--ranking-model=decision_forest"
]

🎯 总结:推荐开启的选项组合

--background-index
--clang-tidy
--completion-style=detailed
--function-arg-placeholders=true
--header-insertion=iwyu
--suggest-missing-includes
--ranking-model=decision_forest

这些选项一起使用,可以显著增强代码补全、诊断、导航的体验。


另外一个悬浮翻译的插件也不错

在这里插入图片描述

在这里插入图片描述

英语发音的插件

在这里插入图片描述

在这里插入图片描述

vscode 的smooth 选项

在这里插入图片描述

相关文章:

  • Qt C++简单图形界面与绘图实验
  • 开闭原则与依赖倒置原则区别:原类不变,新增类(功能)vs 接口类不变,原实现类可变
  • 算法篇(九)【滑动窗口】
  • 《筑牢防线:全方位守护移动应用免受逆向侵扰》
  • linux下如何在一个录目中将一个文件复制到另一个录目,删除目录
  • A2A 协议与 MCP 协议:智能代理生态系统的双轮驱动
  • 组件通信-自定义事件
  • Dify 安装 使用
  • STM32 ZIBEE DL-20 无线串口模块
  • Linux Netlink机制:现代网络通信的核心
  • C++ set和map
  • 5月2日日记
  • 普通IT的股票交易成长史--20250502 突破(1)
  • 动态规划算法精解(Java实现):从入门到精通
  • [HOT 100] 0124. 二叉树中的最大路径和
  • 从零开始讲DDR(8)——AXI 接口MIG 使用(1)
  • 滥用绑定变量导致Oracle实例宕机
  • nt!NtReplyWaitReceivePortEx函数分析之nt!LpcpMoveMessage拷贝csr_api_msg
  • NV162NV172美光固态颗粒NV175NV188
  • 010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全
  • 3:0战胜日本队,中国羽毛球队挺进2025苏迪曼杯决赛
  • 天津航空一航班盘旋14圈才降落,客服:因天气影响
  • 铁路上海站迎五一假期客流最高峰,今日预计发送77万人次
  • 剑指3000亿产业规模,机器人“武林大会”背后的无锡“野望”
  • 屠呦呦当选美国科学院外籍院士
  • 准80后湖北省财政厅副厅长徐晶华已调任襄阳市副市长