为什么使用mingw
参考:http://c.biancheng.net/view/8077.html
GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。
目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGW 和 Cygwin。其中,MinGW 侧重于服务 Windows 用户可以使用 GCC 编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便;而 Cygwin 则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用 GCC 编译器,理论上可以运行 Linux 平台上所有的程序。
如果读者仅需要在 Windows 平台上使用 GCC,可以使用 MinGW 或者 Cygwin;除此之外,如果读者还有更高的需求(例如运行 POSIX 应用程序),就只能选择安装 Cygwin。
mingw介绍
MinGw 全称 Minimalist GNU for Windows,应用于 Windows 平台,可以为我们提供一个功能有限的 Linux 系统环境以使用一些 GNU 工具,比如 GCC 编译器、gawk、bison 等等。
安装mingw
参考:https://www.cnblogs.com/TAMING/p/9945389.html
下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
下载这个:
MinGW-w64各版本区别(sjlj seh dwarf)
DWARF:一种带调试信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统
SJLJ:跨平台,支持32,64位系统,缺点是:运行速度稍慢,GCC不支持
SEH: 调用系统机制处理异常,支持32,64位系统,缺点是:Gcc不支持(即将支持)
安装步骤参考:https://www.cnblogs.com/lishanyang/p/15768083.html
i686和x86_64分别表示32位和64位的gcc
无法通过在线下载进行安装,之后参考:https://stackoverflow.com/questions/46455927/mingw-w64-installer-the-file-has-been-downloaded-incorrectly
直接去另一个网址下载编译好的:
下载地址:https://winlibs.com/#download-release
winlibs-x86_64-posix-seh-gcc-9.4.0-mingw-w64-9.0.0-r2.zip
加入到环境变量即可
编译程序
命令行编译hello
#include<stdio.h>
int main(){
printf("hello");
return 0;
}
命令行编译的hello特征
vscode编译
参考:https://www.cnblogs.com/lishanyang/p/15768083.html
vscode是免费的,下载zip格式解压就能用
至于如何配置,参考:https://blog.csdn.net/qq_45766131/article/details/105640605
https://www.yuque.com/hackdoors/dcilgi/em8w99#odB3G
task.json——用于编译
launch.json——用于自定义调试
c_cpp_properties.json——用于智能提示
vscode介绍
在mingw的bin目录中含有很多exe、dll,这些exe、dll组成了c程序在windows系统下的编译器
addr2line.exe
ar.exe
as.exe
c++.exe
c++filt.exe
cpp.exe
dlltool.exe
dllwrap.exe
dos2unix.exe
elfedit.exe
g++.exe
gcc-ar.exe
gcc-nm.exe
gcc-ranlib.exe
gcc.exe
gcov-dump.exe
gcov-tool.exe
gcov.exe
gdb-add-index
gdb.exe
gdbserver.exe
gendef.exe
genidl.exe
gfortran.exe
gprof.exe
iconv.exe
ld.bfd.exe
ld.exe
mac2unix.exe
mingw32-make.exe
ninja.exe
nm.exe
objcopy.exe
objdump.exe
pexports.exe
ranlib.exe
readelf.exe
size.exe
strings.exe
strip.exe
unix2dos.exe
unix2mac.exe
widl.exe
windmc.exe
windres.exe
x86_64-w64-mingw32-c++.exe
x86_64-w64-mingw32-g++.exe
x86_64-w64-mingw32-gcc-9.4.0.exe
x86_64-w64-mingw32-gcc-ar.exe
x86_64-w64-mingw32-gcc-nm.exe
x86_64-w64-mingw32-gcc-ranlib.exe
x86_64-w64-mingw32-gcc.exe
x86_64-w64-mingw32-gfortran.exe