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 更新系统软件包

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

bash 复制代码
sudo apt update
sudo apt upgrade

1.2 安装 build-essential

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

bash 复制代码
sudo apt install build-essential

1.3 验证安装

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

查看 GCC 版本:

bash 复制代码
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++ 版本:

bash 复制代码
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 版本:

bash 复制代码
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++ 调试功能依赖于它。

bash 复制代码
sudo apt install gdb

查看 GDB 版本:

bash 复制代码
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 是事实上的标准构建工具。

bash 复制代码
sudo apt install cmake

查看 CMake 版本:

bash 复制代码
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 安装:

bash 复制代码
sudo snap install code --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 文件,内容如下:

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 文件,内容如下:

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 文件,内容如下:

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 的文件,输入以下代码:

cpp 复制代码
#include <iostream>
#include <string>

using namespace std;

int main() {
    cout << "Hello, Ubuntu C++ Development!" << endl;
    
    string name = "VS Code";
    cout << "Welcome to " << name << " on Ubuntu!" << endl;
    
    return 0;
}

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

5.2 编译和运行

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

bash 复制代码
g++ -g test.cpp -o test
./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 参数:

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

6.4 多文件项目编译

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

json 复制代码
{
    "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 使用,以获得更好的项目管理和跨平台支持。


参考资料

相关推荐
12345,catch a tiger7 分钟前
虚拟机ubuntu安装Vmware Tools
linux·运维·ubuntu
tankeven9 分钟前
动态规划专题(03):区间动态规划从原理到实践(未完待续)
c++·算法·动态规划
天若有情67313 分钟前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串
程序员萌萌39 分钟前
Redis的缓存机制和淘汰策略详解
数据库·redis·缓存机制·淘汰策略
辰风沐阳41 分钟前
OpenClaw 安装教程(Ubuntu 24.04 Desktop)
linux·ubuntu
大前端下的小角色1 小时前
UE5.6 Cesium 插件编译踩坑记录(UE 5.6 + MSVC 14.38 + CMake 3.31)
c++
不剪发的Tony老师1 小时前
SQLite 3.53.0版本发布,重要更新
数据库·sqlite
Bczheng11 小时前
九.Berkeley DB数据库 序列化和钱包管理(1)
数据库
cozil1 小时前
记录mysql创建数据库未指定字符集引发的问题及解决方法
数据库·mysql
架构师老Y1 小时前
013、数据库性能优化:索引、查询与连接池
数据库·python·oracle·性能优化·架构