VS code 调试及运行c++程序出错(.json文件配置问题)

本文介绍了在VS Code中调试C++程序时遇到的launch.json和tasks.json配置错误,包括无法调试、找不到launch.json文件以及编译错误等问题。提供了解决这些问题的具体配置示例。
摘要由CSDN通过智能技术生成

写好的代码没办法进行调试/找不到 launch.json文件/compile文件can't find,说明.json文件的配置没配置好,调试不成功;

1. launch.json文件配置(可直接粘贴):

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C/C++",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb.exe",
            "preLaunchTask": "compile",
            "setupCommands": [
                {
                    "description
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于C++的开发,我们可以配置VS Code的tasks.json文件来自动化执行编译、运行调试等任务。下面详细介绍配置C++的tasks.json文件的步骤和常用属性: 1. 在VS Code打开一个C++项目,并创建tasks.json文件。 2. 在tasks.json文件中,定义一个编译任务。一般情况下,我们使用g++编译器来编译C++代码。具体的代码如下: ``` { "version": "2.0.0", "tasks": [ { "label": "Compile C++", "type": "shell", "command": "g++", "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "to", "workspace"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+): (warning|error): (.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } } ] } ``` 解释: - "version": "2.0.0" 表示使用VS Code的最新版本的任务配置格式。 - "tasks" 是一个数组,包含了所有的任务定义。 - "label": "Compile C++" 表示任务的名称,可以根据需要自行修改。 - "type": "shell" 表示使用Shell命令执行任务。 - "command": "g++" 表示要执行的编译命令,这里使用g++编译器。 - "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"] 表示要传递给编译命令的参数,其中: - "-g" 表示生成调试信息。 - "${file}" 表示当前打开文件。 - "-o" 表示指定输出文件的名称。 - "${fileDirname}/${fileBasenameNoExtension}" 表示输出文件的路径和名称,其中: - "${fileDirname}" 表示当前文件所在的目录。 - "${fileBasenameNoExtension}" 表示当前文件的名称(不包含扩展名)。 - "group" 表示该任务属于build的组,并且是默认的任务。 - "problemMatcher" 用于捕获编译输出的错误信息。 3. 在tasks.json文件中,定义一个运行任务。具体代码如下: ``` { "version": "2.0.0", "tasks": [ { "label": "Run C++", "type": "shell", "command": "${fileDirname}/${fileBasenameNoExtension}", "group": { "kind": "test", "isDefault": true } } ] } ``` 解释: - "version": "2.0.0" 表示使用VS Code的最新版本的任务配置格式。 - "tasks" 是一个数组,包含了所有的任务定义。 - "label": "Run C++" 表示任务的名称,可以根据需要自行修改。 - "type": "shell" 表示使用Shell命令执行任务。 - "command": "${fileDirname}/${fileBasenameNoExtension}" 表示要执行的运行命令,其中: - "${fileDirname}" 表示当前文件所在的目录。 - "${fileBasenameNoExtension}" 表示当前文件的名称(不包含扩展名)。 - "group" 表示该任务属于test的组,并且是默认的任务。 4. 在tasks.json文件中,定义一个调试任务。具体代码如下: ``` { "version": "2.0.0", "tasks": [ { "label": "Debug C++", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false } ] } ``` 解释: - "version": "2.0.0" 表示使用VS Code的最新版本的任务配置格式。 - "tasks" 是一个数组,包含了所有的任务定义。 - "label": "Debug C++" 表示任务的名称,可以根据需要自行修改。 - "type": "cppdbg" 表示使用C++调试器执行任务。 - "request": "launch" 表示启动调试器并进行调试。 - "program": "${fileDirname}/${fileBasenameNoExtension}" 表示要进行调试程序,其中: - "${fileDirname}" 表示当前文件所在的目录。 - "${fileBasenameNoExtension}" 表示当前文件的名称(不包含扩展名)。 - "args": [] 表示传递给程序的参数,这里为空数组。 - "stopAtEntry": false 表示是否在程序入口处停止调试。 - "cwd": "${workspaceFolder}" 表示程序的工作目录。 - "environment": [] 表示环境变量,这里为空数组。 - "externalConsole": false 表示是否在外部控制台中进行调试。 以上三个任务定义中,"group" 属性用于将任务分组,可以方便地在任务面板中进行查找和执行。同时,"isDefault" 属性用于指定默认执行的任务。 最后,给出两个配置C++的tasks.json文件的示例代码: 示例1:使用g++编译和执行C++程序 ``` { "version": "2.0.0", "tasks": [ { "label": "Compile and Run C++", "type": "shell", "command": "g++", "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "to", "workspace"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+): (warning|error): (.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }, { "label": "Run C++", "type": "shell", "command": "${fileDirname}/${fileBasenameNoExtension}", "group": { "kind": "test", "isDefault": true } } ] } ``` 示例2:使用CMake编译和执行C++程序 ``` { "version": "2.0.0", "tasks": [ { "label": "Configure CMake", "type": "shell", "command": "cmake", "args": ["-B", ".", "-DCMAKE_BUILD_TYPE=Debug"], "group": { "kind": "build", "isDefault": true } }, { "label": "Build C++", "type": "shell", "command": "cmake", "args": ["--build", "."], "group": { "kind": "build", "isDefault": true }, "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "to", "workspace"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+): (warning|error): (.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }, { "label": "Run C++", "type": "shell", "command": "${fileDirname}/build/${fileBasenameNoExtension}", "group": { "kind": "test", "isDefault": true } } ] } ``` 需要注意的是,示例2中的任务需要在C++项目的根目录下包含一个CMakeLists.txt文件,并且使用CMake来构建项目。其中,“Configure CMake”任务用于生成构建文件,“Build C++”任务用于编译项目,“Run C++”任务用于运行程序
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值