vs code 配置.json文件引入makefile文件实现多文件编译

本文介绍了如何在VS Code中配置launch.json和tasks.json文件,以支持使用Makefile进行多文件C++项目的编译和调试。在Ubuntu 16.04 LTS和VS Code 1.22环境下,通过正确配置这两个文件,可以解决编译和调试大型工程时遇到的问题。当提示'Nothing to be done for 'all''时,可以通过执行'make clean'来清除编译缓存,然后重新编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 背景: 之前使用VS code写c++时,没使用到多文件,所以对launch.jason和task.jason配置没过多配置,但不支持多文件间的编译,调试。
注:主要针对较大的一些工程,涉及多个文件的编译,使用到Makefile。如果一个头文件和cpp文件可以看其他教程
平台:Ubuntu 16.04 LTS && VS Code 1.22

1. launch.json的配置

在官网查看帮助文档,介绍了python的json文件的配置,有些默认版本并不对应,不具备解决我的要求。所以查了一些其他资料,解决问题。至于json文件怎么出来,不介绍了。在欢迎界面有些使用教程和命令,先熟悉下这个再说。

     {
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "nam
### 配置 VSCode 的 `launch.json` 文件 #### 基本概念 `launch.json` 是 Visual Studio Code 中用于调试程序的核心配置文件。它定义了启动调试会话所需的各项设置,例如运行环境、可执行文件路径以及传递给程序的参数等。 --- #### 创建 `launch.json` 要创建或编辑 `launch.json` 文件,可以按以下方法操作: 1. 打开项目目录下的 `.vscode/` 文件夹(如果不存在,则手动创建该文件夹)。 2. 使用快捷键 **Ctrl+Shift+D** 或点击左侧活动栏中的调试图标,然后选择顶部工具栏中的齿轮图标 (**Configure**) 来生成默认模板。 3. 如果已有模板,可以直接修改;如果没有,默认情况下可以选择适合的语言支持并自动生成初始配置。 --- #### 主要字段说明 以下是常见的 `launch.json` 字段及其作用: - **name**: 调试配置名称,在调试界面显示以便区分不同配置[^1]。 ```json "name": "C++ Launch" ``` - **type**: 指定使用的调试器类型,通常为 `cppdbg` 表示 C/C++ 调试。 ```json "type": "cppdbg" ``` - **request**: 请求模式,一般固定为 `"launch"` 表示启动新进程进行调试。 ```json "request": "launch" ``` - **program**: 可执行文件路径,通常是编译后的二进制文件位置。 ```json "program": "${workspaceFolder}/a.out" ``` - **args**: 向程序传递的命令行参数列表。 ```json "args": ["arg1", "arg2"] ``` - **stopAtEntry**: 是否在程序入口处暂停,默认为 `false`。 ```json "stopAtEntry": false ``` - **cwd**: 工作目录,指定当前工作路径。 ```json "cwd": "${fileDirname}" ``` - **environment**: 设置额外的环境变量。 ```json "environment": [ {"name": "VAR_NAME", "value": "var_value"} ] ``` - **externalConsole**: 是否启用外部控制台窗口,默认为 `true`。 ```json "externalConsole": true ``` - **MIMode**: 指定调试协议,对于 GCC/GDB 用户应设为 `gdb`。 ```json "MIMode": "gdb" ``` - **miDebuggerPath**: GDB 或 LLDB 的具体路径,当未加入全局 PATH 时需显式提供。 ```json "miDebuggerPath": "/usr/bin/gdb" ``` - **preLaunchTask**: 在启动前自动触发的任务名,常用来关联构建任务 (`tasks.json`) 。 ```json "preLaunchTask": "build" ``` --- #### 示例配置 假设正在开发一个简单的 C++ 程序,并希望使用 GDB 进行调试,下面是一个完整的 `launch.json` 示例: ```json { "version": "0.2.0", "configurations": [ { "name": "C++ Debug Configuration", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/bin/app.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] } ``` 上述配置中包含了多个常用选项,其中 `${workspaceFolder}` 和其他预定义变量简化了跨平台兼容性处理。 --- #### 关联 `tasks.json` 为了实现自动化构建流程,可以通过 `preLaunchTask` 参数绑定到 `tasks.json` 定义的任务上。例如,先通过 Makefile 构建目标再进入调试阶段。 以下是对应的 `tasks.json` 示例片段: ```json { "label": "build", "type": "shell", "command": "make", "group": "build", "problemMatcher": [] } ``` 这样每次启动调试之前都会重新构建最新版本的应用程序。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值