MinGW-w64
1.1、MinGW-w64简介
是什么 ?:GCC for Windows 64 & 32 bits.
开发语言:C
官方主页:http://mingw-w64.org
1.2、MinGW 🆚 MinGW-w64
  • MinGW只能编译为Win32程序,不能编译为Win64程序。
  • MinGW-w64不仅能编译为Win64程序,也能编译为Win32程序。
  • MinGW更新速度及其慢,不能很好的支持较新的Windows API
  • MinGW-w64的更新很快。
1.3、通过包管理器安装MinGW-w64
操作系统包管理器安装命令
WindowsChocolateychoco install -y MinGW
macOSHomeBrewbrew install mingw-w64
GNU/LinuxHomeBrewbrew install mingw-w64
aptsudo apt-get install -y *-w64-x86-*
CentOSyumsudo yum install -y mingw-w64-tools mingw32-binutils
dnfsudo dnf install -y mingw-w64-tools mingw32-binutils

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm mingw-w64-*
1.4、通过编译源码安装MinGW-w64

step1、安装依赖

所有时Terminal + Shell + GNU CoreUtils
下载时cURL
解压时tar + bzip2
编译时gmakegcc / GCC | Clang / LLVM
运行时glibc ( libc.solibpthread.sold-linux-x86-64.so )

step2、使用curl命令下载MinGW-w64源码包 (

curl -LO https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v8.0.0.tar.bz2

step3、使用tar解压MinGW-w64源码包

tar vxf mingw-w64-v8.0.0.tar.bz2

step4、进入mingw-w64-v8.0.0目录

cd mingw-w64-v8.0.0

step5、查看mingw-w64-v8.0.0目录中的内容

step6、配置、编译、安装

./configure && make && sudo make install
1.5、MinGW-w64中包含的工具

GNU/LinuxUNIX系统中,MinGW-w64提供的命令以${arch}-w64-mingw32-作为前缀,这是因为这些工具本身是从GCCGNU BinUtils等项目移植的, 如果不加前缀的话,会与这些软件的命令互相覆盖。

这些命令的用法与GCCGNU BinUtils等项目中的命令的用法完全一样。

archbit
i68632bit
x86_6464bit
${arch}-w64-mingw32-gccGCCgcc
${arch}-w64-mingw32-gcc-arGCCgcc-ar
${arch}-w64-mingw32-gcc-nmGCCgcc-nm
${arch}-w64-mingw32-gcc-ranlibGCCgcc-ranlib
${arch}-w64-mingw32-g++GCCg++
${arch}-w64-mingw32-gcovGCCgcov
${arch}-w64-mingw32-gcov-dumpGCCgcov-dump
${arch}-w64-mingw32-gcov-toolGCCgcov-tool
${arch}-w64-mingw32-c++GCCc++
${arch}-w64-mingw32-cppGCCcpp
${arch}-w64-mingw32-asBinUtilsas
${arch}-w64-mingw32-ldBinUtilsld
${arch}-w64-mingw32-arBinUtilsar
${arch}-w64-mingw32-ranlibBinUtilsranlib
${arch}-w64-mingw32-nmBinUtilsnm
${arch}-w64-mingw32-stripBinUtilsstrip
${arch}-w64-mingw32-c++filtBinUtilsc++filt
${arch}-w64-mingw32-objcopyBinUtilsobjcopy
${arch}-w64-mingw32-objdumpBinUtilsobjdump
${arch}-w64-mingw32-readelfBinUtilsreadelf
${arch}-w64-mingw32-gprofBinUtilsgprof
${arch}-w64-mingw32-stringsBinUtilsstrings
${arch}-w64-mingw32-sizeBinUtilssize
${arch}-w64-mingw32-addr2lineBinUtilsaddr2line
${arch}-w64-mingw32-nlmconvBinUtilsnlmconv
${arch}-w64-mingw32-dlltoolBinUtilsdlltool
${arch}-w64-mingw32-windmcBinUtilswindmc
${arch}-w64-mingw32-windresBinUtilswindres
1.6、MinGW-w64使用示例

step1、编写一个C源文件hello.c,其内容如下:

#include <stdio.h>

int main() {
    printf("Hello fpliu\n");
    return 0;
}

step2、使用x86_64-w64-mingw32-gcc命令编译

x86_64-w64-mingw32-gcc -o hello.exe hello.c

step3、使用file命令查看一下hello.exe的文件格式

step4、使用wine64命令运行hello.exe