vscode中的C++配置(解决侦错报错Error,preLaunchTask存在错误)

零.安装

  1. mingW  记录本地gcc/g++安装位置。   

  2. C/C++ for Visual Studio Code ,齿轮设好。

  3. 准备一个c艹程序。若有多个,请勿同时使用main。并将其放在工作文件夹里面,vs打开夹

一. 生成配置文件

  1. tasks.json——快捷键Ctrl+Shift+P →Configure build task
  2. launch.json——快捷键Ctrl+Shift+D创建launch.json → 选择空白,C++(gdb)启动
  3. settings.json
  4. c_cpp_properties.json——快捷键ctrl+shift+P 运行 Cpp: Edit configurations生成c_cpp_properties.json

二. 完善配置文件

        I.tasks.json

   "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 建置使用中檔案",
            //注意label对应lauch.json中的preLaunchTask
            "args": [
                //"-std=c99",
                "-fdiagnostics-color=always",
                "-g",
                "${fileWorkspaceFolder}\\**.cpp",
                "-o",
                "${fileDirname}\\output\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"

解释:

  1. ${fileWorkspaceFolder} -当前打开文件的工作空间文件夹,此处将所有的cpp编译成可执行文件exe.而args中的“-g”就是编译出带调试信息的意思。
  2. ${fileDirname} -当前打开文件的文件夹路径,此处下转一个叫output的文件夹存exe
  3. ${fileBasenameNoExtension} -当前打开的文件的basename,没有文件扩展名
  4. args相当于执行g++ -g xx.cpp -o .\output\(file)xx.exe

        II.launch.json

"program": "${fileDirname}\\output\\${fileBasenameNoExtension}.exe",

此处应与上面tasks.json中的args内底相同。

"miDebuggerPath"中添加gdb的路径。

"preLaunchTask"与前面tasks.json中的label一致。

III.c_cpp_properties.json

需要添加compilerPath,可将"includePath"设为{workspaceFolder}/**。

${workspaceFolder} —是指在VS Code中打开的文件夹路径。

stopAtEntry值更改为true,使调试器在开始调试时停止在main上。

三.保存配置,并启动侦错

存好配置文件,拷贝以便下次直接使用。按F5键进行调试。

GitHub - Flame57U/.vscode_Deploy_for_cpp: For public

源码如上。

### 解决方案 在处理 `Failed to launch` 错误时,通常是因为配置文件中的路径设置不正确或者环境变量未正确加载。以下是针对该问题的具体分析和解决方案。 #### 1. 路径校验 检查 `launch.json` 文件中定义的程序路径是否正确。当前路径为: ```plaintext d:\VCCode\Project_v\C++\.vscode\project1\test1 ``` 如果这是一个可执行文件,则需要确保其扩展名 `.exe` 存在于路径中。例如,应该改为: ```json "program": "d:\\VCCode\\Project_v\\C++\\.vscode\\project1\\test1.exe" ``` 注意反斜杠 `\` 在 JSON 中需要用双反斜杠表示[^1]。 #### 2. 构建任务验证 确认预构建任务 `"preLaunchTask"` 是否成功完成编译操作。如果没有指定正确的构建任务名称或命令不存在,则可能导致无法生成目标文件。建议修改如下: ```json "preLaunchTask": "build_task", ``` 同时,在 `tasks.json` 文件中添加对应的构建脚本,比如使用 g++ 编译器: ```json { "label": "build_task", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ``` 此部分用于确保每次运行前都会重新编译源码并生成最新版本的目标文件[^3]。 #### 3. 权限与依赖库缺失排查 某些情况下,即使路径无误也可能因为缺少必要的动态链接库而报错。可以通过以下方法进一步诊断: - 使用工具如 Dependency Walker 检测是否存在丢失的 DLL; - 如果是在特定硬件平台(如 NVIDIA Jetson 设备),需特别关注交叉编译环境下可能遇到的兼容性问题[^2]。 另外还需留意操作系统对于不同目录访问权限的要求,必要时调整相关文件夹属性允许读写操作。 #### 示例修正后的 launch.json 配置 下面给出一个经过优化适配后的完整示例供参考: ```json { "version": "0.2.0", "configurations": [ { "name": "(Windows) Launch", "type": "cppdbg", "request": "launch", "program": "d:\\VCCode\\Project_v\\C++\\.vscode\\project1\\test1.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "E:/vs code/mingw/mingw64/bin/gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build_task" } ] } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值