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图标右键属性,选择兼容性,取消勾选以兼容式运行这个程序。运行成功!