【教程】VSCode配置C++环境踩坑记录

时隔一年终于在VSCode配置好了C++环境[MinGW]

基础部分

就是安装VSCode,然后再安装C++插件之类的,咱这就不罗嗦了,如果不清楚可以参考这篇文章:VSCode配置C/C++环境
毕竟解决后面一些棘手的问题更重要。

踩坑

当你按照大多数网上能搜到的普通教程配置完后,很可能会出现一些问题,一般来说都是编译程序之后,启动程序的过程中出现的问题,因此问题集中在launch.json上
这里说一下.vscode文件夹下各个文件都是干啥的

文件名 功能
tasks.json(必要) 告诉 VSCode 如何编译 .cpp 文件,配置后将调用 g++ 编译器基于源代码创建可执行文件
launch.json(必要) launch.json 可以使用F5使VSCode启动GDB调试器来调试程序
c_cpp_properties.json(非必要) C++插件生成的配置文件,可以实现更多控制,改变编译器的路径、C++ 标准(默认为 C++17)等等

坑0

如果遇到上面文中出现过的一直报 "Unable to create ‘launch.json’ file inside the ‘.vscode’ folder (Cannot read property ‘name’ of undefined)."这个错误 的情况,可以自己新建tasks.json,launch.json,然后往里面写入内容(参考那篇文章的内容,我自己写了一个tasks.json,注意:各自的编译器路径不一样,要把路径填写正确)

{
    
    
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "(gdb) Launch",
            "preLaunchTask": "C/C++: g++.exe 生成活动文件",//调试前执行的任务,就是之前配置的tasks.json中的label字段
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "X:\\xx\\bin\\gdb.exe",// 要改成自己的路径
            "setupCommands": [
                {
    
    
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

坑1

报错 “launch: program ‘xxx’ does not exist”,你需要检查一下是不是安装了C++ Runner,如果安装了就卸载掉,否则会影响启动程序
打开调试界面,你会看到"运行和调试"这的下拉选项框,应该用GDB Launch而不是C++ Runner
VSCode调试界面
仅安装一款C++插件即可,推荐应用广泛的C++工具

坑2

MinGW是不支持中文路径的,所以路径中不能有中文
否则无论你如何修改你的配置文件,例如launch.json tasks.json ,程序运行时都会报错
错误信息:No such file or directory
意思是找不到文件或路径

坑3

留意一下tasks.json中的preLaunchTask和launch.json中的label是否相同,一定要相同才行

目前我碰到的坑大概就这些,希望你也早点配置成功

猜你喜欢

转载自blog.csdn.net/m0_61316509/article/details/131809468