MinGW安装
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
MinGW 的安装是非常简单的,我们只需要下载 mingw-get-setup.exe 的安装包,然后不断点击下一步安装即可。下载地址 https://sourceforge.net/projects/mingw/。
不过需要注意勾选上 mingw32-base 跟 mingw-gcc-g++ 这两个选项,这样才能有 gcc 跟 g++ 命令。

我习惯把 MinGW 安装在 C 盘根目录,安装完成之后就可以在 C:\MinGW\bin 目录找到 gcc.exe 命令,还有很多原来只能在 Linux 平台用的命令,例如:ar.exe 打包静态库的命令。
这些命令都可以在 Windows 的命令行控制台下直接运行的,我们进入 命令行,如下:

我们再进入 C:\MinGW\lib 目录看一下,会发现很多后缀是 .a 或 .o 的文件,例如:
- crt1.o
- crt2.o
- libcrtdll.a
- libcrypt32.a
- 等等
用 .a 后缀来表示静态库是 Linux 平台的习惯,而 Windows 平台习惯用 .lib 后缀表示静态库。实际上这里的 .a 文件跟 Windows 的 .lib 文件,文件格式是完全一样的,都是打包。
到这里先抛出一个问题,这些 .o 后缀的文件的格式是不是跟 msvc 编译出来的 .obj 文件格式是一样的?
我们可以用 dumpbin 来验证一下,命令如下:
dumpbin /HEADERS crt1.o

可以看到 MinGW 里面的 .o 文件实际上就是 .obj 文件,文件格式是都是 COFF ,只是变了一下后缀。在 Linux 下用 gcc 编译出来的 .o 文件,是无法用 dumpbin 解析的,因为 Linux 的 .o 是 ELF 格式。