在ubuntu系统上我们可以直接安装gcc/g++,但在windows上无法直接安装g++,这时候就需要用到MinGW啦,MinGW是从Cygwin(1.3.3版)基础上发展而来。GCC支持的语言大多在MinGW也受支持,其中涵盖C、C++、Objective-C、Fortran及Ada。对于C语言之外的语言,MinGW使用标准的GNU运行库,如C++使用GNU libstdc++。 下载链接:https://sourceforge.net/projects/mingw/
这个是可视化在线安装器,需要在线下载安装内容安装,才会完成,安装地址建议使用默认路径,避免出现一些莫名的问题,当然,不喜欢装C盘的话可以选择其他安装路径: 比如:
D:\MinGW然后选择需要安装的工具,常用的就是gcc,g++和gdb。如果涉及多文件编程,则需要使用make,但是有的图形下载界面没有make,可参考这里的解决方案:【解决方案】。
下载过程: 下载完成: 把MinGW加入环境变量,然后在CMD中看看是否安装成功。 下载的路径:
在CMD输入命令,看看是否安装成功。
gcc -v make -v # 这里我把原来的mingw32-make改名为make了1、launch.json:
{ https://go.microsoft.com/fwlink/?linkid=830387 "version": "2,0.0", //配置文件的版本,以前使用是0.2.0,新版本已经弃用,改用为2.0.0 "configurations": [ //配置域 { "preLaunchTask": "Build", //调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应 "name": "(gdb) Launch", //配置文件的名字,可以随便起 "type": "cppdbg", //调试的类型,Vscode现在支持很多,我这里主要是C,所以只能是cppdbg "request": "launch",//配置文件的请求类型,有launch和attach两种,具体看官方文档 "targetArchitecture": "x64", //硬件内核架构,为64bit,如图设置 "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",//可执行文件的路径和文件名称 "args": ["file1", "file2"],//主函数调用时传入的参数 "stopAtEntry": false,//设为true时程序将暂停在程序入口处 "cwd": "${workspaceFolder}",//调试时的工作目录 "environment": [], "internalConsoleOptions": "openOnSessionStart",// "externalConsole": true,//调试时是否显示控制台窗口 "MIMode": "gdb",//指定连接的调试器,可以省略不写 "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",//调试器路径,在Linux环境下需要注释掉这一行 "setupCommands": [ //不知道干嘛的 { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], } ] }2、tasks.josn
简单配置如下,配合launch.json也可以正常运行
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "label": "Build", // 任务名称,与launch.json的preLaunchTask相对应 "version": "2.0.0", "command": "gcc", "args": [ "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe", "-g", ], "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }结果正常