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

Ubuntu 系统配置 VS Code C++ 开发环境

Ubuntu 系统配置 VS Code C++ 开发环境

前言

在 Linux 环境下进行 C++ 开发是许多开发者的选择,Ubuntu 作为最受欢迎的 Linux 发行版之一,拥有完善的软件生态和活跃的社区支持。本文将详细介绍如何在 Ubuntu 系统中配置完整的 C++ 开发环境,包括编译器、调试器、构建工具以及 VS Code 编辑器的配置。

测试环境:

  • Ubuntu 20.04 LTS
  • VS Code 1.x
  • GCC 9.4.0 / G++ 9.4.0

一、安装基础编译工具链

1.1 更新系统软件包

首先,确保系统软件包列表是最新的:

sudoaptupdatesudoaptupgrade

1.2 安装 build-essential

build-essential是一个元数据包,包含了 GNU 编辑器集合(GCC/G++)、GNU 调试器(GDB)、Make 等编译 C/C++ 程序所必需的开发库和工具。安装它相当于一次性安装了 gcc、g++、make 等核心工具。

sudoaptinstallbuild-essential

1.3 验证安装

安装完成后,可以通过以下命令验证各工具的版本:

查看 GCC 版本:

gcc--version

输出示例:

gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

查看 G++ 版本:

g++--version

输出示例:

g++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

查看 Make 版本:

make--version

输出示例:

GNU Make 4.2.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

二、安装调试器和构建工具

2.1 安装 GDB 调试器

GDB(GNU Debugger)是 Linux 下最常用的命令行调试器,VS Code 的 C/C++ 调试功能依赖于它。

sudoaptinstallgdb

查看 GDB 版本:

gdb--version

输出示例:

GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

2.2 安装 CMake 构建工具

CMake 是一个跨平台的自动化建构系统,它使用平台独立的配置文件来控制软件编译过程。对于大型 C++ 项目,CMake 是事实上的标准构建工具。

sudoaptinstallcmake

查看 CMake 版本:

cmake--version

输出示例:

cmake version 3.16.3 CMake suite maintained and supported by Kitware (kitware.com/cmake).

三、安装和配置 VS Code

3.1 安装 VS Code

如果尚未安装 VS Code,可以从官方网站下载.deb安装包,或通过 Snap 安装:

sudosnapinstallcode--classic

3.2 安装 C/C++ 扩展

打开 VS Code,点击左侧活动栏的扩展图标(或按Ctrl+Shift+X),搜索并安装以下扩展:

  1. C/C++ Extension Pack(推荐):微软官方提供的 C/C++ 扩展包,包含智能感知、调试、代码导航等功能。
  2. Code Runner(可选):一键运行代码片段,适合快速测试。
  3. C/C++ Compile Run(可选):简化编译和运行流程。

安装C/C++ Extension Pack后,其他相关插件会自动附带安装。


四、配置 VS Code C++ 开发环境

VS Code 与 Visual Studio 或其他大型 IDE 的工作机制类似,每个项目有一个单独的工作空间(目录)。可以为每个工作空间配置定制的环境,也可以配置默认的全局环境。

在配置 C/C++ 开发环境时,主要涉及三个配置文件,它们都位于项目根目录下的.vscode文件夹中:

  • tasks.json:定义编译任务,告诉 VS Code 如何编译源文件
  • launch.json:定义调试配置,控制调试器的行为
  • c_cpp_properties.json:定义 IntelliSense 设置,如头文件路径、编译器路径、C/C++ 标准等

4.1 配置 tasks.json(编译任务)

tasks.json用于告诉 VS Code 如何编译你的 C++ 源文件。

创建方法:

  1. 打开任意.cpp文件
  2. 点击菜单栏TerminalConfigure Tasks...
  3. 选择C/C++: g++ build active file

VS Code 会自动生成一个tasks.json文件,内容如下:

{"tasks":[{"type":"cppbuild","label":"C/C++: g++ build active file","command":"/usr/bin/g++","args":["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options":{"cwd":"${fileDirname}"},"problemMatcher":["$gcc"],"group":{"kind":"build","isDefault":true},"detail":"Task generated by Debugger."}],"version":"2.0.0"}

关键配置说明:

  • type:任务类型,可以设置为"cppbuild""shell""shell"更通用,可以根据需要修改。
  • label:任务名称,可以自定义,但必须与launch.json中的preLaunchTask字段保持一致。
  • command:指定编译器路径,可以使用绝对路径/usr/bin/g++,也可以直接使用g++(系统会在 PATH 中查找)。
  • args:编译器参数数组:
    • -fdiagnostics-color=always:始终显示彩色诊断信息
    • -g:生成调试信息,供 GDB 使用
    • ${file}:当前打开的文件
    • -o ${fileDirname}/${fileBasenameNoExtension}:输出文件路径,与源文件同名但不带扩展名
  • options.cwd:工作目录,${fileDirname}表示当前文件所在目录
  • problemMatcher:问题匹配器,$gcc用于解析 GCC/G++ 的输出错误
  • group:任务组,"isDefault": true表示这是默认构建任务

注意:不需要修改诸如${fileDirname}${fileBasenameNoExtension}这样的预定义变量,它们是 VS Code 的动态变量,会根据当前文件自动替换。更多变量参考详见官方文档。

4.2 配置 launch.json(调试配置)

launch.json用于配置调试环境,控制 GDB 调试器的行为。

创建方法:

  1. 打开任意.cpp文件
  2. 点击菜单栏RunAdd Configuration...
  3. 选择C/C++: (gdb) Launch

或者点击侧边栏的"运行和调试"图标,然后点击"创建 launch.json 文件",选择C/C++: (gdb) Launch

VS Code 会自动生成一个launch.json文件,内容如下:

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"name":"g++ - Build and debug active file","type":"cppdbg","request":"launch","program":"${fileDirname}/${fileBasenameNoExtension}","args":[],"stopAtEntry":false,"cwd":"${fileDirname}","environment":[],"externalConsole":false,"MIMode":"gdb","setupCommands":[{"description":"Enable pretty-printing for gdb","text":"-enable-pretty-printing","ignoreFailures":true}],"preLaunchTask":"C/C++: g++ build active file","miDebuggerPath":"/usr/bin/gdb"}]}

关键配置说明:

  • name:调试配置的名称,显示在调试下拉菜单中
  • type:调试器类型,cppdbg表示使用 C/C++ 调试扩展
  • request:请求类型,launch表示启动新进程进行调试
  • program:需要调试的可执行文件路径。${fileDirname}/${fileBasenameNoExtension}表示当前文件所在目录下、与当前文件同名但不带扩展名的可执行文件。例如,当foobar.cpp处于打开状态时,编译得到的foobar会被调试。
  • args:传递给程序的命令行参数数组
  • stopAtEntry:是否在程序入口处停止。默认为false,运行时调试器不会在源文件中添加断点;设置为true时,调试会在main函数入口处等待,方便逐步调试。
  • cwd:工作目录,${fileDirname}表示当前文件所在目录
  • externalConsole:是否使用外部控制台。false表示使用 VS Code 内置终端,true表示弹出独立终端窗口
  • MIMode:调试器模式,gdb表示使用 GDB
  • setupCommands:调试器启动时执行的命令。-enable-pretty-printing启用 GDB 的美化打印功能,使 STL 容器等复杂数据结构的显示更易读
  • preLaunchTask:调试前执行的任务,必须与tasks.json中的label字段一致
  • miDebuggerPath:GDB 调试器的路径,通常为/usr/bin/gdb

4.3 配置 c_cpp_properties.json(IntelliSense 配置)

c_cpp_properties.json用于配置 IntelliSense(智能感知)的行为,包括头文件搜索路径、编译器路径、C/C++ 标准等。

创建方法:

  1. Ctrl+Shift+P打开命令面板
  2. 输入并选择C/C++: Edit Configurations (JSON)

VS Code 会自动创建一个c_cpp_properties.json文件,内容如下:

{"configurations":[{"name":"Linux","includePath":["${workspaceFolder}/**"],"defines":[],"compilerPath":"/usr/bin/gcc","cStandard":"c17","cppStandard":"gnu++14","intelliSenseMode":"linux-gcc-x64","configurationProvider":"ms-vscode.cmake-tools"}],"version":4}

关键配置说明:

  • name:配置名称,可以根据不同平台设置多个配置
  • includePath:头文件搜索路径数组。${workspaceFolder}/**表示递归搜索工作区文件夹下的所有子目录
  • defines:预处理器宏定义数组,例如["DEBUG", "_DEBUG"]
  • compilerPath:编译器路径,IntelliSense 使用此编译器来获取系统头文件路径和内置宏
  • cStandard:C 语言标准,可选值包括c89c99c11c17
  • cppStandard:C++ 语言标准,可选值包括c++98c++11c++14c++17c++20gnu++14等。gnu++前缀表示启用 GNU 扩展
  • intelliSenseMode:IntelliSense 模式,应与编译器和平台匹配。linux-gcc-x64表示 Linux 平台下的 GCC 64 位模式
  • configurationProvider:配置提供者,如果使用 CMake 项目,可以设置为ms-vscode.cmake-tools,让 CMake Tools 扩展自动提供配置

五、测试配置

5.1 创建测试文件

在工作区创建一个名为test.cpp的文件,输入以下代码:

#include<iostream>#include<string>usingnamespacestd;intmain(){cout<<"Hello, Ubuntu C++ Development!"<<endl;string name="VS Code";cout<<"Welcome to "<<name<<" on Ubuntu!"<<endl;return0;}

注意:cout后要加endl,否则会延迟输出。endl不仅插入换行符,还会刷新输出缓冲区。

5.2 编译和运行

方法一:使用终端手动编译

g++-gtest.cpp-otest./test

方法二:使用 VS Code 任务

  1. 打开test.cpp文件
  2. Ctrl+Shift+B运行默认构建任务
  3. 在终端中运行生成的可执行文件:./test

方法三:使用 Code Runner 扩展

  1. 右键点击编辑器,选择Run Code
  2. 或直接按Ctrl+Alt+N

5.3 调试测试

  1. main函数的某一行设置断点(点击行号左侧)
  2. F5或点击侧边栏的"运行和调试"按钮
  3. 选择g++ - Build and debug active file配置
  4. 调试器会在断点处暂停,可以查看变量、单步执行等

六、常见问题与解决方案

6.1 找不到头文件

如果 IntelliSense 提示找不到某些头文件,检查c_cpp_properties.json中的includePath是否正确。对于系统头文件,确保compilerPath指向正确的编译器。

6.2 调试时无法命中断点

确保编译时添加了-g标志生成调试信息。检查launch.json中的program路径是否正确指向可执行文件。

6.3 中文乱码问题

如果终端输出中文乱码,可以在编译时添加-fexec-charset=UTF-8参数:

"args":["-fdiagnostics-color=always","-g","-fexec-charset=UTF-8","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"]

6.4 多文件项目编译

对于多文件项目,建议改用 CMake 或 Makefile 管理构建过程。在tasks.json中可以调用makecmake --build命令:

{"type":"shell","label":"CMake Build","command":"cmake","args":["--build","${workspaceFolder}/build"],"group":{"kind":"build","isDefault":true}}

七、总结

本文详细介绍了在 Ubuntu 系统中配置 VS Code C++ 开发环境的完整流程,包括:

  1. 安装基础编译工具链(GCC/G++、Make)
  2. 安装调试器(GDB)和构建工具(CMake)
  3. 安装 VS Code 及 C/C++ 扩展
  4. 配置tasks.jsonlaunch.jsonc_cpp_properties.json三个核心文件
  5. 测试编译、运行和调试功能

通过以上配置,你可以在 Ubuntu 上获得接近 Visual Studio 的 C++ 开发体验。对于大型项目,建议结合 CMake 使用,以获得更好的项目管理和跨平台支持。


参考资料

  • VS Code C++ 官方文档
  • GCC 官方文档
  • GDB 用户手册
  • CMake 官方文档
http://www.cnnetsun.cn/news/1796074.html

相关文章:

  • 为什么你的PHP低代码表单在高并发下崩溃?揭秘Swoole协程注入式表单引擎的3步迁移路径
  • 并发程序的隐形杀手:深入浅出 CPU 伪共享与性能优化
  • 收藏备用!【重磅整理】2025 计算机专业就业方向全景图:薪资、技能与前景详解
  • 高密目前靠谱的软装馆
  • Zephyr SMF轻量状态机实战与嵌入式开发优化
  • 很多人对渗透测试工程师的认知停留在“模拟黑客攻击”,但实际工作内容远比这更全面。
  • 物联网浏览器(IoTBrowser)-js开发人脸识别肚
  • LobeChat进阶使用:自定义Agent打造专属AI助手实战教程
  • 基础篇一 Nuxt4路由详解:动态路由与路由参数
  • mPLUG视觉问答修复笔记:解决RGBA崩溃和路径依赖,打造稳定本地服务
  • linux驱动----驱动程序
  • 分享10款答辩AI工具及模板体验,aibiye等神器助你高效完成答辩。
  • SiameseAOE保姆级教程:Web界面操作,轻松抽取评论中的属性和观点
  • SDMatte模型部署优化:利用Docker容器化实现环境隔离与一键迁移
  • SAP揭秘者-QM质量通知单项目精讲第二季 解决方案系统操作篇
  • HTTP数据缓存与并发控制:http-api-guide性能优化深度解析
  • nli-distilroberta-base在舆情分析中的实战:识别报道与评论间的观点倾向性
  • Wan2.2-I2V-A14B私有部署避坑指南:RTX4090D环境配置,一次成功不报错
  • 如何突破信息壁垒?这款开源工具的边界与价值
  • Tailwind CSS如何实现溢出滚动处理_利用overflow-auto添加CSS滚动条
  • SecGPT-14B环境部署:双4090显卡下tensor_parallel_size=2稳定运行配置
  • Tao-8k构建智能运维(AIOps)大脑:日志异常检测与根因分析
  • 手把手教你在Windows上安装OpenClaw(2026最新版,零基础可上手)
  • 掌握CarouselLayoutManager水平与垂直布局:终极技巧
  • Vue使用Electron将网页打包为exe文件
  • ClearerVoice-Studio插件开发:为Audacity添加AI降噪功能
  • CosyVoice-300M Lite安装报错?解决tensorrt依赖问题完整指南
  • 深度学习项目训练环境生产环境:支持持续训练、断点续训、多卡DDP扩展
  • DeOldify模型部署成本分析:星图GPU平台不同配置下的性价比对比
  • 开源情报收集:OpenClaw调度SecGPT-14B自动化监控暗网