欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > Ubuntu 环境下的 C/C++ 编译与调试配置

Ubuntu 环境下的 C/C++ 编译与调试配置

2025/5/11 2:44:40 来源:https://blog.csdn.net/FHKHH/article/details/144060232  浏览:    关键词:Ubuntu 环境下的 C/C++ 编译与调试配置

详细教学文档:Ubuntu 环境下的 C/C++ 编译与调试配置

本文档将手把手引导你完成在 Ubuntu 环境中设置 VS Code 的 tasks.jsonlaunch.json,实现以下目标:

  1. 统一管理输出文件:将所有编译生成的可执行文件统一存放到项目的 build 目录。
  2. 优化调试流程:调试器自动定位 build 中的可执行文件,免去手动调整路径的麻烦。
  3. 跨平台兼容性:确保配置适用于 Ubuntu 和其他类 Unix 系统。

目录

  1. 前提条件
  2. 创建项目目录结构
  3. 配置 tasks.json
  4. 配置 launch.json
  5. 使用步骤
  6. 常见问题排查
  7. 最终效果总结

前提条件

在开始之前,请确保系统已安装以下工具:

  1. g++ 编译器
    安装命令:

    sudo apt install g++
    
  2. gdb 调试器
    安装命令:

    sudo apt install gdb
    
  3. 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 目录中"}]
}
关键解释
  1. ${workspaceFolder}:指代项目根目录。
  2. ${fileBasename}:当前活动文件的文件名(包括扩展名)。
  3. ${fileBasenameNoExtension}:当前活动文件的文件名(不包括扩展名)。
  4. -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}]}]
}
关键解释
  1. program:动态指向 build 目录中的可执行文件,自动根据源文件名匹配。
  2. cwd:调试器工作目录,设置为 build
  3. miDebuggerPath:指定调试器路径。

使用步骤

1. 编译程序
  1. 打开源文件,例如 src/main.cpp
  2. 按快捷键 Ctrl + Shift + B 或从菜单中选择 任务 -> 运行任务
  3. 确保可执行文件生成到 build 目录,例如 build/main
2. 调试程序
  1. 按快捷键 F5 或从菜单中选择 运行 -> 启动调试
  2. 程序将在 build 目录下运行,调试器会附加到进程。

常见问题排查

问题 1:g++gdb 未安装

解决方法

sudo apt install g++ gdb
问题 2:build 目录不存在或无写权限

解决方法

mkdir -p build
chmod +w build
问题 3:调试时程序无法找到输入文件

原因:默认工作目录为 build
解决方法:将输入文件复制到 build 目录,或使用绝对路径。


最终效果总结

  1. 统一输出路径:所有可执行文件存储在 build 目录,管理更清晰。
  2. 一键调试:按 F5 即可运行调试,无需手动配置路径。
  3. 易于扩展:适用于多文件项目,通过修改 tasks.jsonargs 增加编译参数即可支持复杂构建需求。

祝你使用愉快!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词