VScode 配置C++文件 (使用Windows自带终端“黑窗口”)

 launch.json 配置
 

{
    "version": "2.0.0",
    "configurations": [
        
        {
            "name": "C/C++: g++.exe 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "C:\\Windows\\system32\\cmd.exe",
            "args": ["/C","${fileDirname}\\${fileBasenameNoExtension}.exe","&","pause"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\A_softwear\\VScode\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "task g++"
        },
        
    ],
    
}

这个文件用于配置如何调试你的项目。在你的配置中:

  • Name: 提供这个调试配置的名称。
  • Type: 指定调试器的类型,这里是 cppdbg,表示使用的是 C++ 调试器。
  • Request: 指定调试会话的类型,这里是 launch,表示启动一个新的调试会话。
  • Program: 指定要调试的程序的路径。
  • Args: 程序运行时需要的命令行参数。
  • Cwd: 程序的工作目录。
  • PipeTransport: 配置通过 Bash on Windows 使用 GDB 进行调试的设置。
  • SetupCommands: 包括启用整齐打印和设置反汇编风格等调试器初始化命令。

launch.json 允许你通过配置调试会话的参数,直接从 IDE 启动和调试程序,而不需要离开 VS Code 环境。

        如果要使用该代码,需要将miDebuggerPath改成自己的路径。

        这里稍微解释一下为啥这样配置,program 被设置为 "C:\\Windows\\system32\\cmd.exe",这意味着调试会话启动时,它将启动 Windows 的命令行处理程序(cmd.exe)。这样做的目的通常是为了在命令行环境中执行一系列操作,如运行编译后的 .exe 文件,并通过命令行参数来控制这个执行流程。

关键配置详解:

  • program: 指定要启动的程序,这里是 cmd.exe,即命令行窗口。
  • args: 这是传递给 cmd.exe 的参数列表。
    • "/C": 告诉 cmd.exe 执行后面的字符串然后终止。
    • "${fileDirname}\\${fileBasenameNoExtension}.exe": 这是编译后的可执行文件的路径。fileDirname 是文件所在的目录,fileBasenameNoExtension 是文件名(不包括扩展名)。所以这个路径指向你的 C++ 程序的编译输出。
    • "&","pause": 这部分让 cmd.exe 在执行完 .exe 文件后不立即关闭窗口,而是显示“Press any key to continue…”等待用户操作,这样你可以看到程序的输出结果。

调试流程说明:

  1. 编译: 在调试之前,VS Code 通过执行 preLaunchTask 指定的任务(这里是 "task g++")来编译你的 C++ 文件。你需要在 tasks.json 文件中定义一个名为 task g++ 的任务,确保它编译当前的 C++ 文件并输出 .exe 文件。

  2. 启动调试会话: 调试会话开始时,VS Code 通过 cmd.exe 打开一个新的命令行窗口,并运行你的 .exe 文件。cmd.exe 使用提供的参数执行你的程序,允许你在外部控制台中看到输出,并在程序执行完后暂停。

  3. 观察结果: 由于 pause 命令的存在,你可以在窗口关闭前看到程序的输出和任何可能的错误信息。

如果你的目的是直接在调试器中运行和调试 C++ 程序,而不通过 cmd.exe,则 program 应直接指向你的 .exe 文件,而不是 cmd.exe。确保 tasks.json 正确配置并能生成 .exe 文件,然后在 launch.json 中直接引用该 .exe 文件作为 program 的值。

tasks.json配置

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "task g++",
            "command": "D:\\A_softwear\\VScode\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        },
    ],
    "version": "2.0.0"
}

这个文件主要用于配置如何构建(即编译)你的项目。在你提供的配置中:

  • Type: 指定任务的类型,这里是 cppbuild,表示这是一个 C++ 构建任务。
  • Label: 这个任务的标签,方便用户在执行任务时识别。
  • Command: 指定编译器的完整路径,这里是 gcc.exe,这是 MinGW 中的 GCC 编译器。
  • Args: 编译器的命令行参数,包括启用诊断颜色、生成调试信息、指定输入文件和输出文件。
  • Options: 设置任务执行的工作目录。
  • ProblemMatcher: 用于捕捉编译时的错误和警告,使它们在 VS Code 的“问题”面板中显示。
  • Group: 表明这个任务属于构建任务,并且是默认的构建任务。

这个文件让你可以通过快捷键(通常是 Ctrl+Shift+B)或通过命令面板触发编译过程。

        如果要直接复制这个代码,需要修改command为自己的路径。如果使用的是gcc编译就改成gcc的地址,如果使用g++,则改成g++的地址。

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值