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 选项

在这里插入图片描述

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

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

相关文章

Spring 转发 form-data 文件上传请求时中文文件名乱码

Spring 转发 form-data 文件上传请求时中文文件名乱码 复现问题找原因解决问题参考 复现问题 后端有两个接口&#xff1a; /upload 是文件上传的接口。 /forward 是转发文件上传请求的接口。 RequestMapping RestController public class FileUploadController {/*** 直接调…

MySQL 8.4.4 安全升级指南:从漏洞修复到版本升级全流程解析

目录 二、升级前关键注意事项 1. 数据安全与备份 2. 版本兼容性与路径规划 三、分步升级操作流程 1. 环境预检与准备 2. 安装包部署 3. 强制升级组件 4. 验证与启动 一、背景与必要性 近期安全扫描发现生产环境的 MySQL 数据库存在多个高危漏洞(CVE 详情参见Oracle 官…

vulkanscenegraph显示倾斜模型(6.4)-多线程下的记录与提交

前言 上章深入分析了帧循环中呈现阶段的具体实现。本章将分析多线程下的记录与提交&#xff0c;进一步剖析vsg帧循环过程中的同步机制&#xff0c;并揭露信号量(VkSemaphore)和围栏(VkFence)以及vsg::FrameBlock与vsg::Barrier在其中的作用。 目录 1 信号量(VkSemaphore)、栅栏…

Python爬虫实战:获取扇贝单词数据并分析,为用户高效学习单词做参考

一、引言 随着互联网的迅猛发展,在线学习资源日益丰富多样。扇贝单词作为一款备受欢迎的在线英语学习平台,积累了海量的单词学习数据。借助 Python 强大的爬虫技术获取这些数据,并运用数据分析和机器学习方法进行深度挖掘,能够为用户量身定制更个性化、更高效的单词学习方…

【Vagrant+VirtualBox创建自动化虚拟环境】Ansible-Playbook

Vagrant 后续Ansible实战&#xff1a;【Ansible自动化运维实战&#xff1a;从Playbook到负载均衡指南】-CSDN博客 Vagrant是一个基于Ruby的工具&#xff0c;用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统&#xff0c;使用 Chef创建自动化虚拟环境 Do…

Codigger Desktop:重新定义数字工作与生活方式

Codigger Desktop是一款革命性的智能桌面操作系统&#xff0c;专为现代数字生活和工作场景打造。它不仅成为开发者的强大生产力工具&#xff0c;更是普通用户日常数字生活的得力助手&#xff0c;完美实现了专业性与易用性的平衡。 Multimedia Desktop全能数字生活平台 重新定…

Servlet+tomcat

serverlet 定义&#xff1a;是一个接口&#xff0c;定义了java类被浏览器&#xff08;tomcat识别&#xff09;的规则 所以我们需要自定义一个类&#xff0c;实现severlet接口复写方法 通过配置类实现路径和servlet的对应关系 执行原理 当用户在浏览器输入路径&#xff0c;会…

什么是 DDoS 攻击?高防 IP 如何有效防护?2025全面解析与方案推荐

一、DDoS 攻击&#xff1a;互联网时代的 “数字核武器” 1. DDoS 攻击的本质与原理 ** 分布式拒绝服务攻击&#xff08;DDoS&#xff09;** 通过操控海量僵尸设备&#xff0c;向目标服务器发送洪水般请求&#xff0c;耗尽带宽、连接或计算资源&#xff0c;导致合法用户无法访…

Circular Plot系列(一): 环形热图绘制

针对近期多个粉丝咨询环形图的绘制&#xff0c;我意识到&#xff0c;我们似乎没有真正介绍过circle图&#xff0c;但这一类图确是非常常用的图&#xff0c;所以这里详细学习一下circle的绘制&#xff0c;使用的是circlize包&#xff0c;功能很完善&#xff1a;安装包, #https:/…

【数据挖掘】时间序列预测-时间序列预测策略

时间序列预测策略 &#xff08;1&#xff09;单步预测与多步预测&#xff08;2&#xff09;直接多步预测&#xff08;3&#xff09;递归多步预测&#xff08;4&#xff09;直接递归的混合预测&#xff08;5&#xff09;多输入多输出预测 &#xff08;1&#xff09;单步预测与多…

【LLM】deepseek R1之GRPO训练笔记(持续更新)

note 相关框架对比&#xff1a; 需微调模型且资源有限 → Unsloth&#xff1b;本地隐私优先的小规模推理 → Ollama&#xff1b;复杂逻辑或多模态任务 → SGLang&#xff1b;高并发生产环境 → vLLM 微调SFT和GRPO是确实能学到新知识的四种格式&#xff08;messages、sharegpt…

【数据结构】--- 单链表的增删查改

前言&#xff1a; 经过了几个月的漫长岁月&#xff0c;回头时年迈的小编发现&#xff0c;数据结构的内容还没有写博客&#xff0c;于是小编赶紧停下手头的活动&#xff0c;补上博客以洗清身上的罪孽 目录 前言 概念&#xff1a; 单链表的结构 我们设定一个哨兵位头节点给链…

【JAVA】数据类型与变量:深入理解栈内存分配(4)

核心知识点详细解释 Java 的基本数据类型和引用数据类型 基本数据类型 Java 有 8 种基本数据类型&#xff0c;它们可以分为 4 类&#xff1a; 整数类型&#xff1a;byte&#xff08;1 字节&#xff09;、short&#xff08;2 字节&#xff09;、int&#xff08;4 字节&#…

ReentrantLock实现公平锁和非公平锁

在 Java 里&#xff0c;公平锁和非公平锁是多线程编程中用于同步的两种锁机制&#xff0c;它们的主要差异在于获取锁的顺序规则。下面是对二者的详细介绍&#xff1a; 公平锁 公平锁遵循 “先来先服务” 原则&#xff0c;也就是线程获取锁的顺序和请求锁的顺序一致。先请求锁…

一篇撸清 Http,SSE 与 WebSocket

HTTP,SSE 和WebSocket都是网络传输的协议,本篇快速介绍三者的概念和比较。 SSE(Server-Sent Events) 是什么? SSE(Server-Sent Events),服务器发送事件, 是一种基于 HTTP 的轻量级协议,允许服务器主动向客户端(如浏览器)推送实时数据。它设计用于单向通信(服务器到…

5个重要的财务指标讲解

1&#xff09;净资产收益率 2&#xff09;销售净利率 3&#xff09; 销售毛利率 4&#xff09;销售成本率 5&#xff09; 期间费用率 好的&#xff0c;我将通过一个假设的案例&#xff08;某公司2023年数据&#xff09;逐步解释这些财务指标&#xff0c;并用具体数字演示计算…

PISI:眼图1:眼图相关基本概念

0 英文缩写 TIE&#xff08;Time Interval Error&#xff09;时间间隔误差&#xff0c;UI&#xff08;Unit Interval&#xff09;单位间隔PDF&#xff08;Probability Density Function&#xff09;概率密度函数BER&#xff08;Bit Error Rate&#xff09;误码率TJ&#xff08…

前端八股 CSS 2 选择器

选择器功能&#xff1a;选中特定 DOM节点进行渲染 原始方法 getElementById() getElementByName() 现在方法选择器 分类&#xff1a; id选择器 类选择器 标签选择器 逻辑与选择器 其他类型选择器&#xff1a; 伪类选择器&#xff1a; :link&#xff1a;未被访问的链接…

算法竞赛进阶指南.闇の連鎖

目录 题目算法标签: 树上差分, L C A LCA LCA, 倍增思路代码 题目 352. 闇の連鎖 算法标签: 树上差分, L C A LCA LCA, 倍增 思路 对于一个无向图, 第一次切断树边, 第二次切非树边, 一共多少种方案使得图不连通, 点数和边数都很大, 时间复杂度不能是 O ( n 2 ) O(n ^ 2…

ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(二)

ActiveMQ、Kafka 和 RocketMQ 详细对比 性能对比 在性能方面&#xff0c;Kafka 和 RocketMQ 通常在高吞吐量场景下表现出色&#xff0c;而 ActiveMQ 则相对较弱。根据相关测试数据表明&#xff0c;Kafka 在处理大规模日志数据时&#xff0c;单机吞吐量可以达到每秒数十万条甚…