vs配置C语言环境

vs配置C语言环境

仅仅粗略地记录我在配置过程中踩的坑
首先我是参考这篇博文配置的!VSCode配置C语言环境(完整版)VSCode配置C语言环境(完整版)
但是按照这个配置完毕后,按F5运行时,生成的echo task总是显示在运行当中,跑很久都跑不出来,卡在gcc编译这一步不动。
解决方法
由于已经按照上述博文把mingw64放到了环境变量中,在选择运行时,有从系统环境中检测到的gcc选项
在这里插入图片描述

选择这个选项,会自动生成task文件,并且会用gcc在原文件夹生成可执行文件,那么目前只需要配置修改一下博文中的launch文件使其符合task文件就行了。把launch文件的"preLaunchTask"改为task中label对应的名字就好了。

task.json文件

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

launch.json文件

{
    "version": "0.2.0",
    "configurations": [

        {/*这个大括号里是我们的‘调试(Debug)’配置,这里我解释下为什么写了两个,
        因为有时VSCode会有闪现的问题,也就是运行程序后窗口控制台可能会一闪而过,
        看不到结果,因此可以通过搭建configution的办法来解决,也就是搭建一个cmd的配置。*/
            "name": "(Windows) Launch",// 配置名称
            "type": "cppvsdbg",// 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg
            "request": "launch",// 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "cmd",// 将要进行调试的程序的路径
            "preLaunchTask": "C/C++: gcc.exe 生成活动文件", // 调试开始前执行的任务,我们在调试前要编译构建。与tasks.json的label相对应,名字要一样
            "args": [ // 程序调试时传递给程序的命令行参数
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "&",
                "echo."
            ],
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
            "cwd": "${workspaceFolder}",// 调试程序时的工作目录,此处为源码文件所在目录
            "environment": [],// 环境变量,这里设为空即可
            "externalConsole": true,//使用单独的cmd窗口输出
        },
        {//这个大括号里是我们的‘调试(Debug)’配置
            "name": "(gdb) Launch",// 配置名称
            "type": "cppdbg",// 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg
            "request": "launch",// 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,相当于在main上打断点
            "cwd": "${workspaceFolder}",// 调试程序时的工作目录,此处为源码文件所在目录
            "environment": [],// 环境变量,这里设为空即可
            "externalConsole": true,// 使用单独的cmd窗口输出
            "MIMode": "gdb", //指定连接的调试器,gdb是minGW中的调试程序
            "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",//指定调试器所在路径,如果你的minGW装在别的地方,则要改成你自己的路径,注意间隔是\\
            "preLaunchTask": "C/C++: gcc.exe 生成活动文件",//调试开始前执行的任务,这里和task.json的label相对应
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]

        }
    ]
}

c_cpp_properties.json文件

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\mingw64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

配置之后可以运行程序了,但cmd出现会闪退,网上很多方法说是用来旧版的控制台,但我的并没有这样,后来找到个方法,找到vscode图标右键属性,选择兼容性,取消勾选以兼容式运行这个程序。运行成功!
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值