Ubuntu系统VSCode配置C++开发环境
Ubuntu系统VSCode配置C++开发环境
前言
Visual Studio Code(简称 VSCode)作为一款轻量级、跨平台的代码编辑器,凭借其丰富的扩展生态和出色的性能,成为众多开发者首选的开发工具。在 Ubuntu 20.04 系统下配置 C++ 开发环境,可以让开发者享受到 Linux 系统的稳定性和 VSCode 的便捷性。
本文将详细介绍从零开始在 Ubuntu 20.04 系统上配置完整的 C++ 开发环境,包括 VSCode 安装、编译器配置、调试器设置以及 IntelliSense 智能感知配置,帮助初学者快速搭建高效的 C++ 开发平台。
测试环境:
- 操作系统:Ubuntu 20.04 LTS
- 编辑器:Visual Studio Code 1.x
- 编译器:GCC 9.4.0 / G++ 9.4.0
- 调试器:GDB 9.2
一、安装 Visual Studio Code
方法一:通过官方仓库安装(推荐)
这是最推荐的安装方式,可以确保获得最新版本的 VSCode,并且能够通过系统包管理器进行更新。
步骤 1:添加 Microsoft GPG 密钥
打开终端,执行以下命令下载并导入 Microsoft 的 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
步骤 2:添加 VSCode 仓库
将 VSCode 的官方仓库添加到系统源列表中:
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
步骤 3:更新软件包列表并安装 VSCode
sudo apt update
sudo apt install code
安装完成后,可以在应用程序菜单中找到 Visual Studio Code,或在终端中输入 code 启动。
方法二:通过 Snap 安装
Ubuntu 20.04 默认支持 Snap 包管理器,可以通过以下命令快速安装:
sudo snap install code --classic
这种方式安装简单快捷,但版本可能略滞后于官方仓库。
方法三:通过 .deb 包安装
从 VSCode 官方网站 下载 .deb 安装包,然后使用以下命令安装:
sudo dpkg -i code_*.deb
sudo apt install -f # 修复可能的依赖问题
二、安装 C/C++ 编译器和调试器
2.1 安装 build-essential
build-essential 是一个元数据包,包含了编译 C/C++ 程序所需的核心工具链,包括 GCC 编译器、G++ 编译器、Make 构建工具等。
sudo apt install build-essential
2.2 安装 GDB 调试器
GDB(GNU Debugger)是 Linux 下标准的命令行调试器,VSCode 的 C/C++ 调试功能依赖于它。
sudo apt install gdb
2.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
查看 Make 版本:
make --version
查看 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.
三、安装 VSCode C/C++ 扩展
3.1 打开扩展视图
启动 VSCode 后,点击左侧活动栏的扩展图标(或使用快捷键 Ctrl+Shift+X)打开扩展视图。
3.2 搜索并安装 C/C++ 扩展
在搜索框中输入 “C/C++”,找到由 Microsoft 提供的 “C/C++” 扩展(全称:C/C++ Extension Pack),点击 “Install” 按钮进行安装。
该扩展包包含以下核心功能:
- IntelliSense:代码自动补全、参数提示、快速信息
- 调试支持:基于 GDB/LLDB 的图形化调试界面
- 代码导航:跳转到定义、查找引用、符号搜索
- 代码片段:常用的 C/C++ 代码模板
3.3 可选扩展推荐
根据开发需求,还可以安装以下扩展以提升开发体验:
- Code Runner:一键运行代码片段,适合快速测试
- C/C++ Compile Run:简化编译和运行流程
- Better C++ Syntax:改进 C++ 语法高亮
- Include Autocomplete:头文件自动补全
安装完成后,点击 “Reload Required” 按钮重新加载 VSCode 以激活扩展。
四、配置 C++ 开发环境
VSCode 本身只是一个编辑器,需要通过配置文件来告诉它如何编译、调试和提供智能感知。对于 C++ 项目,主要涉及三个配置文件,它们都位于项目根目录下的 .vscode 文件夹中:
- tasks.json:定义编译任务
- launch.json:定义调试配置
- c_cpp_properties.json:定义 IntelliSense 设置
4.1 创建工作区
为了方便管理配置,建议为每个 C++ 项目创建独立的工作区(文件夹)。
mkdir ~/cpp_projects
cd ~/cpp_projects
code .
这将打开 VSCode 并将当前文件夹设置为工作区根目录。
4.2 配置 tasks.json(编译任务)
tasks.json 用于告诉 VSCode 如何编译 C++ 源文件。
创建方法:
- 在工作区中创建一个名为
hello.cpp的文件 - 打开该文件
- 点击菜单栏
Terminal→Configure Tasks... - 选择
C/C++: g++ build active file
VSCode 会自动生成 .vscode/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 表示 C++ 构建任务,也可改为 shell |
label |
任务名称,需与 launch.json 中的 preLaunchTask 保持一致 |
command |
编译器路径,可使用 /usr/bin/g++ 或直接写 g++ |
args |
编译器参数数组 |
-g |
生成调试信息,供 GDB 使用 |
${file} |
当前打开的文件 |
${fileDirname} |
当前文件所在目录 |
${fileBasenameNoExtension} |
当前文件名(不含扩展名) |
problemMatcher |
问题匹配器,$gcc 用于解析 GCC 输出的错误信息 |
group.isDefault |
设为 true 表示这是默认构建任务,可通过 Ctrl+Shift+B 快速调用 |
自定义编译选项:
如果需要启用 C++17 标准或添加其他编译选项,可以修改 args 数组:
"args": [
"-fdiagnostics-color=always",
"-g",
"-std=c++17",
"-Wall",
"-Wextra",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
]
-std=c++17:启用 C++17 标准-Wall -Wextra:启用更多警告信息
4.3 配置 launch.json(调试配置)
launch.json 用于配置调试环境,控制 GDB 调试器的行为。
创建方法:
- 打开
hello.cpp文件 - 点击左侧活动栏的"运行和调试"图标(或按
F5) - 点击"创建 launch.json 文件"
- 选择
C/C++: (gdb) Launch
VSCode 会自动生成 .vscode/launch.json 文件,内容如下:
{
"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 |
需要调试的可执行文件路径 |
args |
传递给程序的命令行参数 |
stopAtEntry |
是否在程序入口处停止,false 表示不暂停,true 表示在 main 函数入口暂停 |
cwd |
工作目录 |
externalConsole |
是否使用外部控制台,false 使用 VSCode 内置终端 |
MIMode |
调试器模式,gdb 表示使用 GDB |
setupCommands |
调试器启动时执行的命令,-enable-pretty-printing 启用美化打印 |
preLaunchTask |
调试前执行的任务,必须与 tasks.json 中的 label 一致 |
miDebuggerPath |
GDB 调试器路径 |
调试技巧:
- 设置断点:点击行号左侧的红点区域
- 单步执行:
F10(跳过)、F11(进入) - 继续运行:
F5 - 停止调试:
Shift+F5 - 查看变量:在左侧"变量"面板中查看当前作用域内的变量值
4.4 配置 c_cpp_properties.json(IntelliSense 配置)
c_cpp_properties.json 用于配置 IntelliSense(智能感知)的行为,包括头文件搜索路径、编译器路径、C/C++ 标准等。
创建方法:
- 按
Ctrl+Shift+P打开命令面板 - 输入并选择
C/C++: Edit Configurations (JSON)
VSCode 会自动生成 .vscode/c_cpp_properties.json 文件,内容如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
关键配置说明:
| 字段 | 说明 |
|---|---|
name |
配置名称,可根据不同平台设置多个配置 |
includePath |
头文件搜索路径数组,${workspaceFolder}/** 表示递归搜索工作区 |
defines |
预处理器宏定义,如 ["DEBUG", "_DEBUG"] |
compilerPath |
编译器路径,IntelliSense 使用此编译器获取系统头文件路径 |
cStandard |
C 语言标准,可选 c89、c99、c11、c17 等 |
cppStandard |
C++ 语言标准,可选 c++98、c++11、c++14、c++17、c++20 等 |
intelliSenseMode |
IntelliSense 模式,应与编译器和平台匹配 |
常用 C++ 标准:
gnu++14:C++14 + GNU 扩展(Ubuntu 20.04 默认)gnu++17:C++17 + GNU 扩展c++20:纯 C++20 标准(无 GNU 扩展)
如果需要使用 C++17 或更高版本,修改 cppStandard 字段即可:
"cppStandard": "gnu++17"
五、测试配置
5.1 创建测试文件
在工作区根目录创建 hello.cpp 文件,输入以下代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
// 输出欢迎信息
cout << "Hello, Ubuntu 20.04 C++ Development!" << endl;
// 测试字符串
string name = "VSCode";
cout << "Welcome to " << name << " on Ubuntu 20.04!" << endl;
// 测试向量
vector<int> numbers = {1, 2, 3, 4, 5};
cout << "Numbers: ";
for (const auto& num : numbers) {
cout << num << " ";
}
cout << endl;
return 0;
}
5.2 编译和运行
方法一:使用 VSCode 任务
- 打开
hello.cpp文件 - 按
Ctrl+Shift+B运行默认构建任务 - 在终端中运行生成的可执行文件:
./hello
预期输出:
Hello, Ubuntu 20.04 C++ Development!
Welcome to VSCode on Ubuntu 20.04!
Numbers: 1 2 3 4 5
方法二:使用终端手动编译
g++ -g -std=c++17 hello.cpp -o hello
./hello
方法三:使用 Code Runner 扩展
如果安装了 Code Runner 扩展,可以右键点击编辑器,选择 Run Code,或直接按 Ctrl+Alt+N。
5.3 调试测试
-
在
main函数的某一行(如string name = "VSCode";)设置断点 -
按
F5启动调试 -
调试器会在断点处暂停
-
使用以下快捷键进行调试操作:
F10:单步跳过F11:单步进入Shift+F5:停止调试Ctrl+Shift+F5:重启调试
-
在左侧"变量"面板中查看
name和numbers的值
六、高级配置
6.1 多文件项目配置
对于包含多个源文件的项目,建议使用 Makefile 或 CMake 管理构建过程。
使用 Makefile:
在项目根目录创建 Makefile:
CXX = g++
CXXFLAGS = -g -std=c++17 -Wall -Wextra
TARGET = main
SRCS = main.cpp utils.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $@ $^
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
.PHONY: all clean
修改 tasks.json:
{
"tasks": [
{
"type": "shell",
"label": "Make Build",
"command": "make",
"args": [],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
],
"version": "2.0.0"
}
使用 CMake:
创建 CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(main main.cpp utils.cpp)
修改 tasks.json:
{
"tasks": [
{
"type": "shell",
"label": "CMake Build",
"command": "cmake",
"args": ["--build", "${workspaceFolder}/build"],
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"
}
6.2 中文输出乱码问题
如果在终端输出中文出现乱码,可以在编译时添加字符集参数:
"args": [
"-fdiagnostics-color=always",
"-g",
"-fexec-charset=UTF-8",
"-finput-charset=UTF-8",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
]
或者在代码中使用 setlocale:
#include <clocale>
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "zh_CN.UTF-8");
cout << "你好,世界!" << endl;
return 0;
}
6.3 配置全局默认设置
如果希望所有 C++ 项目都使用相同的配置,可以修改用户级别的设置:
- 按
Ctrl+Shift+P打开命令面板 - 输入并选择
Preferences: Open Settings (JSON) - 添加以下配置:
{
"C_Cpp.default.compilerPath": "/usr/bin/g++",
"C_Cpp.default.cppStandard": "gnu++17",
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"editor.formatOnSave": true,
"files.associations": {
"*.hpp": "cpp"
}
}
七、常见问题与解决方案
7.1 找不到头文件
问题: IntelliSense 提示找不到某些头文件,如 <iostream>。
解决方案:
- 检查
c_cpp_properties.json中的compilerPath是否正确 - 确保已安装
build-essential - 手动添加系统头文件路径:
"includePath": [
"${workspaceFolder}/**",
"/usr/include/c++/9",
"/usr/include/x86_64-linux-gnu/c++/9"
]
7.2 调试时无法命中断点
问题: 设置断点后,调试器直接运行完毕,没有在任何断点处暂停。
解决方案:
- 确保编译时添加了
-g标志 - 检查
launch.json中的program路径是否正确指向可执行文件 - 确认
preLaunchTask与tasks.json中的label一致 - 尝试清理并重新编译:
rm -f hello
g++ -g hello.cpp -o hello
7.3 IntelliSense 波浪线误报
问题: 代码可以正常编译,但 IntelliSense 显示红色波浪线提示错误。
解决方案:
- 按
Ctrl+Shift+P,输入C/C++: Reset IntelliSense Database - 重启 VSCode
- 检查
c_cpp_properties.json中的cppStandard是否与编译时使用的标准一致
7.4 权限问题
问题: 编译或运行时提示权限不足。
解决方案:
确保工作区文件夹属于当前用户:
sudo chown -R $USER:$USER ~/cpp_projects
7.5 VSCode 启动缓慢
问题: VSCode 启动或打开大项目时响应缓慢。
解决方案:
- 禁用不必要的扩展
- 在
settings.json中添加:
{
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true,
"**/build/**": true
},
"search.exclude": {
"**/node_modules": true,
"**/build": true
}
}
八、总结
本文详细介绍了在 Ubuntu 20.04 系统下配置 VSCode C++ 开发环境的完整流程,主要包括:
- 安装 VSCode:通过官方仓库、Snap 或 .deb 包三种方式安装
- 安装编译工具链:安装
build-essential和gdb - 安装 C/C++ 扩展:配置 IntelliSense 和调试支持
- 配置三个核心文件:
tasks.json:定义编译任务launch.json:定义调试配置c_cpp_properties.json:定义 IntelliSense 设置
- 测试配置:编写测试代码,验证编译、运行和调试功能
- 高级配置:多文件项目管理、中文乱码处理、全局默认设置
- 常见问题解决:头文件找不到、断点不命中、IntelliSense 误报等
通过以上配置,你可以在 Ubuntu 20.04 上获得高效、便捷的 C++ 开发体验。VSCode 的轻量级特性和丰富的扩展生态,使其成为 Linux 下 C++ 开发的理想选择。
对于大型项目,建议结合 CMake 或 Make 使用,以获得更好的项目管理和跨平台支持。随着对 VSCode 的深入使用,你还可以探索更多扩展和功能,进一步提升开发效率。
参考资料
更多推荐
所有评论(0)