Ubuntu 环境下的 C/C++ 编译与调试配置方法
作者:FHKHH
本文档详细介绍了如何在Ubuntu环境中使用VSCode进行C/C++的编译与调试配置,通过配置`tasks.json`和`launch.json`,实现了统一管理输出文件、优化调试流程以及跨平台兼容性,配置了`g++`编译器和`gdb`调试器,并使用C/C++插件来提高开发效率,感兴趣的朋友跟随小编一起看看吧
详细教学文档:Ubuntu 环境下的 C/C++ 编译与调试配置
本文档将手把手引导你完成在 Ubuntu 环境中设置 VS Code 的 tasks.json
和 launch.json
,实现以下目标:
- 统一管理输出文件:将所有编译生成的可执行文件统一存放到项目的
build
目录。 - 优化调试流程:调试器自动定位
build
中的可执行文件,免去手动调整路径的麻烦。 - 跨平台兼容性:确保配置适用于 Ubuntu 和其他类 Unix 系统。
前提条件
在开始之前,请确保系统已安装以下工具:
g++
编译器
安装命令:
sudo apt install g++
gdb
调试器
安装命令:
sudo apt install gdb
VS Code 扩展:
C/C++ 插件(Microsoft 提供):在扩展市场中搜索 “C/C++” 并安装。
创建项目目录结构
建议项目目录结构如下:
project-root/ ├── build/ # 编译生成的可执行文件目录 ├── src/ # 源代码文件目录 │ ├── main.cpp # 示例源代码文件 ├── tasks.json # VS Code 任务配置文件 └── launch.json # VS Code 调试配置文件
执行以下命令创建目录结构:
mkdir -p project-root/build mkdir -p project-root/src
将你的源代码放入 src
目录,例如创建一个简单的 main.cpp
:
#include <iostream> int main() { std::cout << "Hello, World!" << std::endl; return 0; }
配置 tasks.json
文件路径
将 tasks.json
保存到项目目录下的 .vscode
文件夹中。如果文件夹不存在,使用以下命令创建:
mkdir -p project-root/.vscode touch project-root/.vscode/tasks.json
完整配置内容
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ 编译到 build 目录 (Ubuntu)", "command": "/usr/bin/g++", "args": [ "-fdiagnostics-color=always", // 彩色错误提示 "-g", // 启用调试信息 "${workspaceFolder}/src/${fileBasename}", // 指定源文件路径 "-o", // 输出选项 "${workspaceFolder}/build/${fileBasenameNoExtension}" // 输出文件路径 ], "options": { "cwd": "${workspaceFolder}" // 设置工作目录为项目根目录 }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true // 默认构建任务 }, "detail": "将当前活动文件编译到 build 目录中" } ] }
关键解释
${workspaceFolder}
:指代项目根目录。${fileBasename}
:当前活动文件的文件名(包括扩展名)。${fileBasenameNoExtension}
:当前活动文件的文件名(不包括扩展名)。-g
:开启调试符号,支持调试功能。
配置 launch.json
文件路径
将 launch.json
保存到 .vscode
文件夹中:
touch project-root/.vscode/launch.json
完整配置内容
{ "version": "0.2.0", "configurations": [ { "name": "C/C++ Runner: Debug Session", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/${fileBasenameNoExtension}", // 指向 build 中的可执行文件 "args": [], // 可选参数,留空 "stopAtEntry": false, // 是否在入口处停止 "cwd": "${workspaceFolder}/build", // 调试时的工作目录 "environment": [], // 环境变量 "externalConsole": false, // 使用内嵌终端 "MIMode": "gdb", // 使用 gdb 调试 "miDebuggerPath": "/usr/bin/gdb", // gdb 路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
关键解释
program
:动态指向build
目录中的可执行文件,自动根据源文件名匹配。cwd
:调试器工作目录,设置为build
。miDebuggerPath
:指定调试器路径。
使用步骤
1. 编译程序
- 打开源文件,例如
src/main.cpp
。 - 按快捷键
Ctrl + Shift + B
或从菜单中选择 任务 -> 运行任务。 - 确保可执行文件生成到
build
目录,例如build/main
。
2. 调试程序
- 按快捷键
F5
或从菜单中选择 运行 -> 启动调试。 - 程序将在
build
目录下运行,调试器会附加到进程。
常见问题排查
问题 1:g++
或 gdb
未安装
解决方法:
sudo apt install g++ gdb
问题 2:build
目录不存在或无写权限
解决方法:
mkdir -p buildchmod +w build
问题 3:调试时程序无法找到输入文件
原因:默认工作目录为 build
。
解决方法:将输入文件复制到 build
目录,或使用绝对路径。
最终效果总结
- 统一输出路径:所有可执行文件存储在
build
目录,管理更清晰。 - 一键调试:按
F5
即可运行调试,无需手动配置路径。 - 易于扩展:适用于多文件项目,通过修改
tasks.json
的args
增加编译参数即可支持复杂构建需求。
祝你使用愉快!
到此这篇关于Ubuntu 环境下的 C/C++ 编译与调试配置的文章就介绍到这了,更多相关Ubuntu 编译调试 C++内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!