为什么MinGW二进制文件有这么复杂的名字? (例如i686-w64-mingw32 -...)

时间:2017-12-01 01:34:10

标签: mingw mingw32 mingw-w64

查看我系统上目前的mingw二进制文件,我通常有i686-w64-mingw32-*x86_64-w64-mingw32-*命令。

我认为前者编译32位Windows可执行文件,后者编译64位Windows可执行文件。

然后,w64mingw32在这些二进制文件的名称中表示什么?

w32二进制文件是否有任何意义,例如i686-w32-mingw32-gcc?我认为mingw32就是它的原因,因为该项目曾被称为mingw32并被重命名为MinGW。

1 个答案:

答案 0 :(得分:1)

MinGW基于GCCbinutils以及其他GNU软件。 GNU项目使用所谓的“GNU三元组”来指定体系结构信息。三元组具有以下格式:

machine-vendor-operatingsystem

在构建二进制文件时指定了三元组。

MinGW-w64使用w64作为供应商字段,mingw32作为操作系统。当然,mingw32不是一个操作系统,但它被GCC和binutils构建系统和源代码视为一个。

因此,二进制文件的这些长名称是GCC和binutils正在使用的构建系统的工件。所有这些二进制文件都安装在同一目录中,因此针对不同体系结构的二进制文件(在本例中为32位与64位)需要具有不同的文件名。最简单的方法是在二进制文件前加上描述这些体系结构的GNU三元组。