MinGW安装
在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了
VScode配置
安装插件:C++插件和code runner
配置文件:
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
}
}
}
测试一下
结果正常