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

别再折腾了!Ubuntu 22.04 LTS下VSCode配置C++开发环境,这份保姆级教程一次搞定

Ubuntu 22.04 LTS下VSCode配置C开发环境终极指南如果你正在Ubuntu上尝试配置C开发环境却屡屡碰壁这篇文章就是为你准备的。作为一个曾经在环境配置上浪费了无数个小时的老手我深知那种看着各种报错却无从下手的挫败感。本文将带你一步步避开所有坑点用最直接的方式在Ubuntu 22.04 LTS上搭建一个稳定可靠的C开发环境。1. 准备工作系统环境检查在开始安装之前我们需要确保系统处于一个干净的状态。很多配置失败的原因都源于系统环境的不一致或残留的旧版本软件。首先更新系统软件包列表sudo apt update sudo apt upgrade -y检查当前系统中是否安装了gcc编译器gcc --version如果系统提示未安装gcc不用担心我们会在下一步解决这个问题。但如果你看到已经安装了某个版本的gcc建议记录下版本号以便后续参考。2. 安装VSCode的最佳实践VSCode可以通过多种方式安装但并非所有方式都同样可靠。以下是经过验证的安装方法2.1 官方.deb包安装推荐这是最稳定可靠的安装方式访问VSCode官网下载.deb包在下载目录执行sudo apt install ./下载的文件名.deb2.2 解决常见的snap冲突问题如果你之前尝试过其他安装方式可能会遇到snap冲突。解决方法如下首先检查当前snap操作sudo snap changes找到与code相关的操作中止它sudo snap abort change-id然后移除可能存在的残留sudo snap remove code3. 构建完整的C工具链一个完整的C开发环境需要以下几个核心组件组件功能安装命令build-essential基础编译工具集sudo apt install build-essentialgcc/gGNU编译器集合包含在build-essential中gdbGNU调试器sudo apt install gdbmake构建自动化工具包含在build-essential中安装所有必要组件sudo apt install build-essential gdb验证安装g --version gdb --version4. VSCode的C开发环境配置4.1 必备插件安装在VSCode中安装以下插件C/C (Microsoft官方插件)CMake Tools (如果你使用CMake)Code Runner (快速运行代码)4.2 配置文件详解C开发需要三个核心配置文件tasks.json- 定义构建任务c_cpp_properties.json- 配置IntelliSenselaunch.json- 调试配置4.2.1 tasks.json配置在.vscode文件夹中创建tasks.json{ version: 2.0.0, tasks: [ { type: cppbuild, label: C/C: g build active file, command: /usr/bin/g, args: [ -g, -stdc17, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension} ], options: { cwd: ${fileDirname} }, problemMatcher: [$gcc], group: { kind: build, isDefault: true } } ] }4.2.2 c_cpp_properties.json配置{ configurations: [ { name: Linux, includePath: [ ${workspaceFolder}/**, /usr/include/c/11, /usr/include/x86_64-linux-gnu/c/11 ], defines: [], compilerPath: /usr/bin/g, cStandard: c17, cppStandard: c17, intelliSenseMode: linux-gcc-x64 } ], version: 4 }4.2.3 launch.json配置{ version: 0.2.0, configurations: [ { name: (gdb) Launch, type: cppdbg, request: launch, program: ${workspaceFolder}/${fileBasenameNoExtension}, args: [], stopAtEntry: false, cwd: ${fileDirname}, environment: [], externalConsole: false, MIMode: gdb, preLaunchTask: C/C: g build active file, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ], miDebuggerPath: /usr/bin/gdb } ] }5. 测试你的开发环境创建一个简单的测试文件hello.cpp#include iostream int main() { std::cout Hello, VSCode C Environment! std::endl; return 0; }使用快捷键CtrlShiftB构建项目然后F5启动调试。如果一切正常你应该能在终端看到输出信息。6. 常见问题解决方案问题1IntelliSense无法正常工作确保安装了正确的C/C插件检查c_cpp_properties.json中的include路径是否正确尝试重新加载窗口(CtrlShiftP - Reload Window)问题2调试时无法设置断点确保编译时使用了-g选项检查launch.json中的preLaunchTask是否与tasks.json中的label匹配确保gdb安装正确问题3编译时出现奇怪的错误检查tasks.json中的编译器路径是否正确确保系统中有正确的g版本尝试清理项目并重新构建7. 进阶配置建议对于更复杂的项目你可能需要考虑使用CMake管理项目结构配置clang-format进行代码格式化设置Git版本控制添加单元测试框架(如Google Test)记住一个良好的开发环境是高效编程的基础。花点时间正确配置你的环境未来会节省你大量的调试时间。

相关文章:

别再折腾了!Ubuntu 22.04 LTS下VSCode配置C++开发环境,这份保姆级教程一次搞定

Ubuntu 22.04 LTS下VSCode配置C开发环境终极指南 如果你正在Ubuntu上尝试配置C开发环境却屡屡碰壁,这篇文章就是为你准备的。作为一个曾经在环境配置上浪费了无数个小时的老手,我深知那种看着各种报错却无从下手的挫败感。本文将带你一步步避开所有坑点…...

Tinke:终极免费的NDS游戏资源提取与修改工具完全指南

Tinke:终极免费的NDS游戏资源提取与修改工具完全指南 【免费下载链接】tinke Viewer and editor for files of NDS games 项目地址: https://gitcode.com/gh_mirrors/ti/tinke 想要轻松提取和修改任天堂NDS游戏资源吗?Tinke正是你需要的专业工具&…...

为 OpenClaw 配置 Taotoken 端点以接入统一大模型服务

为 OpenClaw 配置 Taotoken 端点以接入统一大模型服务 1. 准备工作 在开始配置前,请确保已安装 OpenClaw 工具链并拥有有效的 Taotoken API Key。API Key 可在 Taotoken 控制台的「API 密钥」页面生成,模型 ID 则需在「模型广场」查看。建议记录以下信…...

notesGPT自动总结功能:如何让AI从语音中提取关键信息

notesGPT自动总结功能:如何让AI从语音中提取关键信息 【免费下载链接】notesGPT Record voice notes & transcribe, summarize, and get tasks 项目地址: https://gitcode.com/gh_mirrors/no/notesGPT notesGPT是一款强大的语音笔记工具,能够…...

3步解决Windows内存卡顿:Mem Reduct实时监控与优化指南

3步解决Windows内存卡顿:Mem Reduct实时监控与优化指南 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct 你…...

题解:学而思编程 特殊数字1

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

通过 Hermes Agent 配置指南快速接入 Taotoken 平台

通过 Hermes Agent 配置指南快速接入 Taotoken 平台 1. 准备工作 在开始配置 Hermes Agent 之前,请确保您已完成以下准备工作。首先,登录 Taotoken 控制台并创建一个 API Key。该 Key 将用于后续的身份验证。其次,在模型广场中查看可用的模…...

避坑指南:从MySQL迁移到人大金仓KingbaseES,Hibernate配置有哪些‘雷区’和‘神操作’?

避坑指南:从MySQL迁移到人大金仓KingbaseES,Hibernate配置有哪些‘雷区’和‘神操作’? 当企业级应用面临数据库国产化替代需求时,从MySQL向KingbaseES的迁移往往成为技术团队的首选方案。但ORM框架Hibernate在这一过程中的表现&a…...

WASM 模块体积暴增?Python开发者必看的7层压缩链:从Nuitka到wasi-sdk深度裁剪

更多请点击: https://intelliparadigm.com 第一章:WASM模块体积暴增的根源诊断与Python特有挑战 WebAssembly(WASM)在 Python 生态中通过 Pyodide、Micropython-WASM 或 WASI-SDK 等工具链实现运行时嵌入,但开发者常遭…...

别再只用3σ了!用Python的hampel库给你的时序数据做个‘体检’(附完整代码与可视化)

超越3σ法则:用Hampel Filter为时序数据打造抗干扰护甲 当你的传感器数据突然出现一个异常峰值,或是业务指标毫无征兆地跌落谷底,第一反应是什么?删除这个"错误"数据点?还是用3σ法则简单过滤?现…...

SAP ABAP实战:给FAGLL03H报表加自定义字段,我踩过的坑都在这了

SAP ABAP实战:FAGLL03H报表自定义字段增强的避坑指南 当业务部门坚持要在FAGLL03H报表中添加几个"非必要"的描述字段时,作为ABAP开发者的我们往往别无选择。本文将分享我在实现这一需求时踩过的坑和验证过的解决方案,希望能帮助同行…...

YOLOv8炼丹笔记:手把手教你集成RFAConv注意力模块(附完整代码与避坑指南)

YOLOv8模型优化实战:RFAConv注意力模块的深度集成与性能调优 在目标检测领域,YOLO系列模型以其卓越的实时性能著称。然而,当面对复杂场景和小目标检测时,即使是YOLOv8这样的先进架构也难免会遇到性能瓶颈。本文将带您深入探索如何…...

zynq7010和zynq7020的区别

Zynq-7010 和 Zynq-7020 是 Xilinx(现 AMD)Zynq-7000 系列中两款常见的 SoC,主要区别在于 FPGA 逻辑资源,PS(处理器系统)部分完全相同(双核 ARM Cortex-A9,主频最高 766MHz/1GHz&…...

【AHC】HttpAsyncClient 与 async-http-client(AHC):谁是 Java 异步 HTTP 客户端的未来?

HttpAsyncClient 与 async-http-client(AHC):谁是 Java 异步 HTTP 客户端的未来? 发布时间:2026年02月02日 在构建高吞吐、低延迟的微服务网关、实时数据管道或事件驱动系统时,选择一个合适的 异步 HTTP 客户端(Asynchronous HTTP Client) 是架构设计的关键决策。当前…...

LUT(Look-Up Table,查找表)的定义与核心概念

LUT 是一种用“存储 查表”的方式来实现任意组合逻辑的硬件结构。它不是直接用物理门电路(如与门、或门)搭建逻辑,而是通过预先存储所有可能的输入组合对应的输出结果,再根据实际输入去“查表”得到输出。LUT(Look-Up…...

Godot SpriteMesh插件:2D像素精灵转3D网格的完整指南

1. 项目概述:当2D像素精灵遇见3D世界如果你是一个使用Godot引擎的独立开发者,尤其是热衷于制作像素风或2D风格3D游戏的创作者,那么你很可能遇到过这样一个痛点:如何将那些精美的2D像素精灵(Sprite)自然地融…...

从 VS2019 到 OpenSSL:深度解析 EDK2 在 Windows 下的每个依赖项到底在干嘛

从VS2019到OpenSSL:揭秘EDK2开发工具链中每个组件的核心使命 当你在Windows环境下第一次打开EDK2的官方文档,准备搭建UEFI开发环境时,那一长串的依赖项列表可能会让你瞬间头皮发麻——Visual Studio 2019、Python、NASM、LLVM、IASL、OpenSSL…...

电流和电路之串联和并联

串联、并联、混联定义串联:依次相连,一条路,开关控全部,一处断全断,即把多个电阻首尾依次相连,中间没有分支,电流只有一条通路。并联:并列相连,多条路,干路控…...

3分钟搞定HS2-HF Patch安装:HoneySelect2汉化与MOD整合完全指南

3分钟搞定HS2-HF Patch安装:HoneySelect2汉化与MOD整合完全指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是HoneySelect2游戏的汉…...

D3KeyHelper:5个核心技巧掌握暗黑3技能自动化战斗

D3KeyHelper:5个核心技巧掌握暗黑3技能自动化战斗 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款专为《暗黑破坏神3》…...

三步打造专属AI语音管家:让小爱音箱秒变智能助手

三步打造专属AI语音管家:让小爱音箱秒变智能助手 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 你是否曾经对着家里的智能音箱说话&…...

WPeChatGPT:本地应用无缝接入AI的HTTP代理服务器部署与实战

1. 项目概述:一个让本地应用接入AI对话能力的桥梁最近在折腾一些本地应用,比如笔记软件、代码编辑器,总想着要是能直接在里面调用AI对话模型,写写注释、润色下文案,那效率不得起飞?但现实是,这些…...

Agent / Subagent / Swarm 解析:ClaudeCode源码深度解读

Claude Code 的多智能体系统由三个递进层级构成:单次 Subagent(轻量委托)→ Fork Subagent(上下文克隆分身)→ Swarm / Team(多进程协作群)。它们共享同一个 runAgent() 核心,但在隔…...

核心组件大换血:Backbone与Neck魔改篇:YOLO26魔改C3/C4模块:引入Bottleneck Transformer增强局部自注意力

一、引言:为什么C3/C4模块需要“换血”? YOLO系列目标检测模型发展至今,CSP(Cross Stage Partial)架构始终是Backbone和Neck的核心设计范式。从YOLOv5的C3到YOLOv8的C2f,再到YOLO11中灵活化的C3k/C3k2变体,CSP模块一直在追求更高效的特征提取能力。然而,一个结构性问题…...

java-位运算

位运算符是对操作数以二进制比特为单位进行的操作和运算,位运算数的运算对象只能是整型和字符型,结果为整型。位运算就是将参与运算的数据转换成2进制的补码后计算的,计算后在回到原码,转换为10进制原码反码和补码:10进…...

OpenRocket:免费开源火箭设计与飞行仿真软件完整指南

OpenRocket:免费开源火箭设计与飞行仿真软件完整指南 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket 你是否曾梦想设计自己的火箭,…...

2026届学术党必备的AI辅助写作工具实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 全新范式由人工智能技术为毕业论文写作予以提供,借助自然语言处理以及生成式模型…...

第一章-01-初识对象

1.生活中或是程序中,我们都可以使用设计表格、生产表格、填写表格的形式组织数据2.在程序中设计表格,称之为:设计类(class)打印表格,称之为:创建对象填写表格,称之为:对象…...

RAGFlow 系列教程 第十一课:文本分块策略详解

系列: RAGFlow v0.25.0 源码深度解析 作者: 耿雨飞 前置知识: 已完成第十课"LLM 抽象层 – 统一模型接口"的学习 导读 在 RAG(检索增强生成)系统中,文本分块是连接"文档解析"与"向量检索"的关键桥梁。分块质量直接决定了检索精度和生成质量—…...

RAG系统出错别再“重跑“了!Doctor-RAG教你精准定位、局部修复

研究背景 现在大家用LLM做复杂问答的时候,Agentic RAG(智能检索增强生成)已经成了主流方案。简单说就是让模型一边推理、一边检索、一边生成,像侦探破案一样一步步拼凑答案。但问题来了——推理链越长,出错的概率就越…...