当前位置:   article > 正文

cpp vocode launch.json 和 tasks.json_launch.json如何配置

launch.json如何配置

vscode cpp配置

在 VSCode 中配置 C++ 开发环境可以参考以下步骤:

  1. 安装 C/C++ 扩展:在 Extensions(扩展)中搜索 C/C++ 并安装。

  2. 安装 MinGW-w64:MinGW-w64 是一个 Windows 下的 GCC 工具链,可以在 Windows 上开发 C++ 程序。可以从官网下载 MinGW-w64 安装包并安装。安装时需要注意选择合适的架构和版本并将其添加到系统 PATH 环境变量中。

  3. 配置 launch.json:在 VSCode 中打开您的工作区文件夹,使用 F5 快捷键打开 Debug 面板,并点击配置(gear icon)按钮。选择 C++ (GDB/LLDB) 作为调试器配置,VSCode 将会生成一个 launch.json 文件。如果没有自动创建,可以手动在 .vscode 目录下创建 launch.json 文件。在 launch.json 文件中,至少需要配置以下几个属性:

    • "name":这是调试配置的名称;
    • "type":指定调试器的类型,例如 GDB 或者 LLDB;
    • "request":指定调试器启动的方式,例如 attach 或者 launch。在大多数情况下,这个值设置为 “launch”;
    • "program":指定要进行调试的可执行文件的路径;
    • "args":可选参数,传递给程序的命令行参数;
    • "cwd":可选参数,指定程序执行的目录;
  4. 添加 tasks.json:在 VSCode 编辑器中,你可以使用 tasks.json 文件来定义和运行任务。VSCode 任务是指通过配置文件完成自动化操作的过程。需要在 .vscode 目录下创建 tasks.json 文件。在 tasks.json 文件中至少需要添加以下属性:

    • "label":任务名称;
    • "type":任务类型,可以为 shellprocess
    • "command":要运行的命令;
    • "args":命令行参数;
    • "group":任务组;
  5. 编写代码并进行调试:编写代码后,使用 F5 快捷键或点击调试按钮启动调试器,按需设置断点、查看变量值等调试操作即可。

以上是在 Windows 操作系统上进行 C++ 开发的基本配置方法,需要根据具体的开发需求和环境进行相应的修改。

launch.json和tasks.json分别是什么,给出一个基本的配置信息

launch.jsontasks.json 都是 VSCode 中的配置文件,可以用于配置调试和任务执行等相关信息。

launch.json 是配置调试器启动时需要用到的一些信息。在 C++ 开发中,需要指定程序的入口点、程序运行的环境变量、命令行参数等。下面是一个基本的 C++ 调试配置信息:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/helloworld.out",
            "args": [], 这里其实就是传入给程序的命令行参数 比如 .\out.exe 参数1 参数2 参数3
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/mingw-w64/bin/gdb.exe",
            "preLaunchTask": "build"
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

对于这个配置文件,其中的各项意义如下:

  • version:必须要指明的版本号;
  • name:自定义的调试配置名字;
  • type:调试环境类型,这里使用 “cppdbg” 表示 C++ 的 Debug 环境;
  • request:请求类型,这里使用 “launch” 表示启动一个新的进程进行调试;
  • program:调试的程序路径;
  • args:传递给程序的命令行参数;
  • stopAtEntry:程序是否在入口处停止;
  • cwd:程序执行的当前工作目录;
  • environment:环境变量;
  • externalConsole:是否使用外部控制台;
  • MIMode:调试器的类型,这里是 “gdb”;
  • miDebuggerPath:GDB 调试器的路径;
  • preLaunchTask:在启动调试前需要执行的任务,这里是执行 build 任务。

tasks.json 是配置 VSCode 中任务执行的一些信息。在 C++ 开发中,常见的任务包括编译、运行、清理等。下面是一个基本的 C++ 任务配置信息:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "windows": {
                "command": "g++",
                "args": [
                    "${workspaceFolder}/helloworld.cpp",
                    "-o",
                    "${workspaceFolder}/helloworld.out"
                ] 
            },
            "problemMatcher": [], 
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

对于这个配置文件,其中的各项意义如下:

  • version:必须要指明的版本号;
  • label:任务名称;
  • type:任务类型,这里使用 “shell” 表示任务需要在 shell 中执行;
  • windows.command:Windows 平台下的命令;
  • windows.args:命令行参数;
  • problemMatcher:VSCode 默认使用的问题匹配器;
  • group.kind:任务组;
  • group.isDefault:是否设为默认任务。

以上仅是两个基础配置文件的介绍,在实际使用中,可以通过调整里面的各项参数和添加更多的字段来满足具体的需求。

两个差不多嘛

是的,launch.jsontasks.json 两个配置文件中都包含一些相同的属性,比如 nametyperequestargscwd 等。不过这两个文件的用途还是有一定区别的。

launch.json 主要用于配置调试器启动时的一些信息,比如可执行文件路径、命令行参数、环境变量等。它是 Debug 的核心配置文件。它告诉 VSCode 如何启动调试器以及在运行期间如何处理程序和调试信息。

tasks.json 则是用来定义任务的,其中的属性指定了如何运行任务。在 C++ 开发中,可以使用 tasks.json 文件来编译、运行、调试应用程序等。通常情况下,您需要在 tasks.json 中定义一个 build 任务,然后以快捷方式 F7 运行该任务以编译代码并生成可执行文件。当然,任务还可以添加其他的操作,比如清理或打包等。

虽然 launch.jsontasks.json 都包含一些相同的配置项,但它们在功能上确实有所不同。当您需要配置调试时,通常只需编辑 launch.json 文件;当您需要定义其他任意名称的任务时,则应编辑 tasks.json 文件。

报错

根据你提供的信息,应该是因为你指定的 ${workspaceRoot}/cplus.out 路径下确实没有 cplus.out 文件。在 launch.json 中 "program": "${workspaceRoot}/cplus.out" 指定的路径,要求编译出的可执行文件名字为 cplus.out,并且该文件在工作区根目录下。你需要检查一下:

  1. 在编译 C++ 代码时是否生成了正确的可执行文件。你可以在任务终端中执行 ${fileDirname}\\${fileBasenameNoExtension}.exe 命令来运行该文件,这里假设你的源文件名为 example.cpp
  2. 如果可执行文件成功生成,请检查一下它的名称。它应该与你在 launch.json 中指定的 "program" 配置项的值一致。
  3. 如果文件名不一致,需要更新在 launch.json 配置项中的 program 值为正确的文件名。

请注意,如果你使用的是 Visual Studio Code 内置的 C/C++ 扩展进行编译和调试,则默认情况下生成的文件名将是 ${fileBasenameNoExtension}.out,而不是 ${fileBasenameNoExtension}.exe。此时你需要将 launch.json 中的 program 的值改为 ${workspaceRoot}/${fileBasenameNoExtension}.out

根据这个错误信息,看起来是 PowerShell 解析命令时出了问题。这很可能是因为在 PowerShell 中,反斜杠(\)被用作转义字符,因此如果你要在字符串中使用反斜杠,需要对其进行转义,例如将 ${fileDirname}\\${fileBasenameNoExtension}.exe 改为 ${fileDirname}\${fileBasenameNoExtension}.exe

另外,可以尝试使用双引号 " 来包含整个命令,这样 PowerShell 就可以正确解析反斜杠了,例如 "${fileDirname}\${fileBasenameNoExtension}.exe"

总之,你可以尝试一下以下几种方式:

  1. 使用单斜杠 / 而非反斜杠 \,例如 ${fileDirname}/${fileBasenameNoExtension}.exe

  2. 在反斜杠前添加一个额外的反斜杠 \ 进行转义,例如 ${fileDirname}\\\\${fileBasenameNoExtension}.exe

  3. 使用双引号将整个命令包含起来,例如 "${fileDirname}\${fileBasenameNoExtension}.exe"

如果以上方法都不能解决问题,建议提供更多相关信息,以便进行深入分析。

如果在使用 Visual Studio Code 进行 C++ 开发时出现 launch.out does not exist 错误,这可能是因为 VS Code 找不到指定的可执行文件。

根据你提供的信息,launch.json 配置文件中 "program" 字段的值为 ${workspaceRoot}/${fileBasenameNoExtension}.out,这意味着 VS Code 会在当前工作区的根目录下寻找一个以 .out 结尾的文件,然而默认情况下 C++ 的编译输出文件是以 .exe 或无后缀名的方式命名的,因此无法找到指定的可执行文件。

要解决这个问题,你可以尝试修改 "program" 字段的值为${workspaceFolder}/cplus.exe,其中 cplus.exe 是编译器生成的可执行文件名。例如,修改成以下格式:

"program": "${workspaceFolder}/cplus.exe"
  • 1

此外,你还需要在调试前确保已经在工程文件所在目录下编译并生成了可执行文件。可以在终端里使用编译器命令进行编译,如在 MinGW 环境下可以使用 g++ cplus.cpp -o cplus.exe 命令编译 cplus.cpp 并生成可执行文件 cplus.exe

如果以上方法无法解决问题,请提供更多详细信息或相关代码,我将尽力帮助你解决问题。

补充

在这里插入图片描述

preLaunchTask

这里的值要和task文件里 label的值相同,说明task要先执行后再执行launch里的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/461156
推荐阅读
相关标签
  

闽ICP备14008679号