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

【在ubuntu下使用vscode打开c++的make项目及编译调试】

在ubuntu下使用vscode打开c++的make项目及编译调试

      • 第一步:安装必要的软件
      • 第二步:示例项目准备
        • 1. 创建C++源文件: main.cpp
        • 2. 创建头文件: utils.h
        • 3. 创建实现文件: utils.cpp
        • 第三步:使用 VS Code 打开项目
        • 第四步:配置编译任务 (Tasks.json)
        • 如何使用:
        • 第五步:配置调试环境 (Launch.json)
        • 第六步:编译和调试

在ubuntu下使用vscode打开c++的make项目及编译调试

第一步:安装必要的软件

打开终端 (Ctrl+Alt+T),运行以下命令以确保所有必要的工具都已安装。

bash
# 1. 更新软件包列表
sudo apt update# 2. 安装编译工具链 (g++, gdb, make)
sudo apt install build-essential gdb# 3. 安装 VS Code
# 如果尚未安装,可以从 Snap 安装(最简单)
sudo snap install --classic code
# 或者从微软官方仓库安装,具体方法请参考微软官网

验证安装:

bash
g++ --version
make --version
gdb --version

如果这些命令都输出了版本信息,说明工具链已正确安装。

第二步:示例项目准备

为了演示,我们创建一个简单的示例项目。如果您已有项目,可以跳过此步。

在您喜欢的位置(例如 ~/Documents/)创建一个新目录并生成文件:

bash
mkdir my_make_project
cd my_make_project
1. 创建C++源文件: main.cpp
cpp
#include <iostream>
#include "utils.h"int main() {std::cout << "Hello from the main program!" << std::endl;utils::printMessage("This is a message from the utils module.");int result = utils::add(5, 3);std::cout << "The result of addition is: " << result << std::endl;return 0;
}
2. 创建头文件: utils.h
cpp
#ifndef UTILS_H
#define UTILS_Hnamespace utils {void printMessage(const char* message);int add(int a, int b);
}#endif
3. 创建实现文件: utils.cpp
cpp
#include "utils.h"
#include <iostream>namespace utils {void printMessage(const char* message) {std::cout << "Message: " << message << std::endl;}int add(int a, int b) {return a + b;}
}
  1. 创建 Makefile

这是最关键的一步,它定义了如何编译项目。

makefile
# 编译器设置
CXX := g++
CXXFLAGS := -Wall -g -std=c++11# 目标可执行文件名称
TARGET := myapp# 源文件和对象文件
SRCS := main.cpp utils.cpp
OBJS := $(SRCS:.cpp=.o)# 默认目标:编译所有
all: $(TARGET)# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)$(CXX) $(CXXFLAGS) -o $@ $^# 编译 .cpp 文件为 .o 文件
%.o: %.cpp$(CXX) $(CXXFLAGS) -c $< -o $@# 清理生成的文件
clean:rm -f $(OBJS) $(TARGET)# 声明伪目标,防止有同名文件时出错
.PHONY: all clean

关键点:

-g:在可执行文件中包含调试信息,这是调试所必需的。

-Wall:开启大多数警告。

-std=c++11:指定 C++ 语言标准。

现在您的项目结构应如下所示:

text
my_make_project/
├── main.cpp
├── utils.h
├── utils.cpp
└── Makefile
第三步:使用 VS Code 打开项目
  1. 打开 VS Code。
  2. 点击 File -> Open Folder…
  3. 选择您刚刚创建的 my_make_project 文件夹并点击 Open

VS Code 现在将把这个文件夹作为您的工作区。

第四步:配置编译任务 (Tasks.json)

VS Code 可以使用任务 (Tasks) 来调用外部命令,比如 make

  1. 打开命令面板:Ctrl+Shift+P
  2. 输入并选择 Tasks: Configure Task
  3. 接着选择 Create tasks.json file from template
  4. 然后选择 Others 来创建一个通用模板。

VS Code 会在项目根目录下创建一个 .vscode 文件夹,并在其中生成一个 tasks.json 文件。用以下内容替换该文件:

json

{"version": "2.0.0","tasks": [{"label": "Build with Make", // 任务的自定义名称"type": "shell","command": "make",          // 或 "cd ./linux64/proj && make" 直接在 shell 中运行的命令"group": {"kind": "build","isDefault": true       // 将此任务设为默认生成任务},"presentation": {"echo": true,"reveal": "always",     // 总是显示输出窗口"focus": false,"panel": "shared"},"problemMatcher": "$gcc"    // 使用 GCC 的问题匹配器来捕捉错误和警告},{"label": "Clean with Make","type": "shell","command": "make", // 或 "cd ./linux64/proj && make""args": ["clean"]           // 执行 `make clean` 命令}]
}
如何使用:

编译:按 Ctrl+Shift+B。因为我们将任务设置为默认生成任务,所以这会直接运行 make

清理:打开命令面板 (Ctrl+Shift+P),输入 Tasks: Run Task,然后选择 Clean with Make

第五步:配置调试环境 (Launch.json)

这是设置调试的关键。

  1. 点击 VS Code 左侧活动栏的 “运行和调试” 图标(或按 Ctrl+Shift+D)。
  2. 点击 “创建一个 launch.json 文件”。
  3. 在弹出的环境中,选择 C++ (GDB/LLDB)

同样,VS Code 会在 .vscode 文件夹下创建 launch.json 文件。用以下内容替换:

json

{"version": "0.2.0","configurations": [{"name": "(gdb) Launch",       // 配置的名称"type": "cppdbg","request": "launch","program": "${workspaceFolder}/lib/sdtTest", // 需要调试的程序路径"args": [],                   // 传递给程序的命令行参数"stopAtEntry": false,"cwd": "${workspaceFolder}/lib",  // 工作目录 必须跟上部“调试的程序路径”一致"environment": [],"externalConsole": false,     // 使用 VS Code 的内置终端"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "Build with Make" // 在启动调试前先执行的任务}]
}

关键配置解释:
“program”: 必须与您的 MakefileTARGET 的名字一致。这里是 myapp

“preLaunchTask”: 必须与 tasks.json 中定义的编译任务的 “label”(这里是 “Build with Make”)一致。这确保了每次开始调试时,VS Code 都会先自动重新编译项目(如果源代码有改动)。

第六步:编译和调试

现在一切就绪!

编译:按 Ctrl+Shift+B。您会在终端看到 make 命令的输出。如果编译成功,将生成 myapp 可执行文件。

设置断点:在代码编辑器中,在您想暂停执行的行号左侧点击鼠标(例如在 main.cpp 的第 6 行 std::cout… 旁边点击),会出现一个红点。

开始调试:按 F5 或点击“运行和调试”视图中的绿色播放按钮。

VS Code 会首先自动执行 “Build with Make” 任务来编译代码。

然后启动调试器,程序会在您设置的断点处暂停。

调试控制:

  • Step Over (F10):执行下一行代码。
  • Step Into (F11):进入函数内部。
  • Step Out (Shift+F11):跳出当前函数。
  • Continue (F5):继续运行直到下一个断点。
  • 左侧调试窗口可以查看变量、调用堆栈监视表达式

总结
通过以上步骤,您已经在 Ubuntu 上的 VS Code 中成功配置了一个基于 Makefile 的 C++ 项目的完整开发环境,包括:

  1. 一键编译 (Ctrl+Shift+B)
  2. 一键调试 (F5),并支持断点、单步执行、变量查看等所有现代调试功能。

这个工作流对于绝大多数中小型 C/C++ 项目来说都非常高效。对于更复杂的项目,您可能需要调整 Makefiletasks.json 中的参数,但核心配置思路是完全一致的。

http://www.xdnf.cn/news/1342837.html

相关文章:

  • MongoDB 从入门到实践:全面掌握文档型 NoSQL 数据库核心操作
  • 3-2〔OSCP ◈ 研记〕❘ WEB应用攻击▸WEB安全防护体系
  • 云计算学习100天-第27天
  • 嵌入式学习day34-网络-tcp/udp
  • 新手向:用FastAPI快速构建高性能Web服务
  • Codeforces1043 A至F 题解
  • 关于 java+gradle的弹窗多选应用app
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day10
  • Jmeter自动化性能测试常见问题汇总
  • FileCodeBox 文件快递柜 一键部署
  • 如何在Vscode中配置MCP服务?(包含实例:使用Github Copilot + 高德MCP查询旅游攻略)
  • MiniOB环境部署开发(使用Docker)
  • Logstash——安全与权限管理
  • Adobe Photoshop 2025 版本介绍与使用指南
  • 最新AI赋能Python-GEE遥感云大数据分析、可视化与Satellite Embedding创新应用
  • 【ElasticSearch】使用docker compose,通过编写yml安装es8.15和kibana可视化界面操作,go连接es
  • 企业级大模型解决方案:架构、落地与代码实现​
  • 视觉语言对比学习的发展史:从CLIP、BLIP、BLIP2、InstructBLIP(含MiniGPT4的详解)
  • [react] js容易混淆的两种导出方式2025-08-22
  • nginx-限速-限制并发连接数-限制请求数
  • 零音乐基础想创作?通过cpolar,ACE-Step远程编曲如此简单
  • 知识见闻 - 苹果无线键盘A1314说明书
  • 【力扣 Hot100】滑动窗口巧解字串问题
  • 新的 SHAMOS MacOS 窃取程序利用单行终端命令攻击用户
  • 开发者中使用——控制台打印数据
  • Linux mmap内存映射
  • tail -f与less的区别
  • 【系统信息相关】datecal命令
  • 使用 TensorBoardX 实现 PyTorch 神经网络可视化:从入门到进阶
  • 【运维进阶】Shell 变量