【vscode】编写c/c++配置及避坑指南

一、下载vscode

这里不多赘述,下载及安装相关插件即可
在这里插入图片描述

二、下载编译器并安装

这里有个坑,推荐大家下载 MinGW-w64
这个博主将安装介绍的很详细 — https://blog.csdn.net/jjxcsdn/article/details/123058745

MinGW编译器有点问题 尤其是STL的vector,set等数据结构,debug时会出现只能打印容器地址的问题,像下面这样非常影响体验
查了资料,说是要开什么petty-printer,反正我是折腾了半天也没成功,有成功的欢迎在评论区交流
在这里插入图片描述
完成安装后可以在 命令行输入 gcc -v 看是否安装成功,有以下打印代表配置成功
在这里插入图片描述

三、配置文件

vscode 通过以下4个文件来指导编译器如何去编译你的源文件,我们需要重点关心的三个文件是

  • c_cpp_properties.json
  • launch.json
  • tasks.json

settings.json 编译时系统会自动生成
在这里插入图片描述

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/mingw64/include/**",
                "C:/mingw64/lib/gcc/x86_64-w64-mingw32/**"  
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "C:/mingw64/include/**"
                ]
            },
            "compilerPath": "C:/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

以上绝对路径的语句,全部换为第二步中你安装MinGW-w64的路径,其余相同


launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb) Launch",
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true ,
                },
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件" //与tasks.json 的"label"的内容保持一致,表示运行前所需要执行的任务
        }
    ]
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:/mingw64/bin/g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "编译器: C:/mingw64/bin/g++.exe"
        },
    ],
    "version": "2.0.0"
}

四、测试

你可以按F5 并打断点测试,如果程序被正常编译成exe,并开始调试证明配置均正确,可以快乐的编码了!!
在这里插入图片描述
如果debug报错

ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run”

解决:一般是因为 libstdc++ -6.dll该库存在冲突可以全局搜索一下,是否在其他PATH路径下也有这个库导致调用出错
可以将MinGW的环境变量调到最上层解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值