当前位置: 首页 > 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.dtcms.com/a/344321.html

相关文章:

  • [antv-x6] 博客案例
  • 英伟达新架构9B模型引领革命,谷歌/阿里/微美全息AI多维布局锻造底座竞争力
  • ROS2下YOLO+Moveit+PCL机械臂自主避障抓取方案
  • Retrieval-Augmented Generation(RAG)
  • 《CF1245D Shichikuji and Power Grid》
  • 雷达图教程:何时适用,何时无效,以及如何正确使用
  • 小智ai+mcp+n8n的智能组合
  • Matplotlib 可视化大师系列(三):plt.bar() 与 plt.barh() - 清晰对比的柱状图
  • 计算机组成原理(10) - 浮点数的表示
  • 全栈开发:从LAMP到云原生的技术革命
  • docker + nginx + pm2 部署前端项目和后端(nodejs)项目
  • setup 语法糖核心要点
  • 第二十八天:多项式求值问题
  • 决策树进阶学习笔记
  • 文件包含的学习笔记
  • ExcelUtils实现 设置内容 插入行 复制行列格式
  • Day11 数据统计 图形报表
  • 打造数字化资产管理新范式——资产管理系统实战体验
  • DIC技术极端环境案例分享:35MPa水下高压釜拉伸测试
  • Unity 自用帧同步架构分享
  • Python递归下降解析器深度解析:从原理到工程实践
  • layui.formSelects自定义多选组件在layer.open中使用、获取、复现
  • 2025年十大工程项目管理软件
  • 如何使用AI大语言模型解决生活中的实际小事情?
  • 【机器学习深度学习】LMDeploy的分布式推理实现
  • Laravel分布式全链路追踪实战
  • OpenCV 图像边缘检测
  • 设计模式之装饰模式
  • 技术革新:再互动平台如何以全链路数字化重构防伪溯源生态
  • 泵站远程监控与自动化控制系统:智慧泵房设备的创新实践