查看我系统上目前的mingw二进制文件,我通常有i686-w64-mingw32-*
和x86_64-w64-mingw32-*
命令。
我认为前者编译32位Windows可执行文件,后者编译64位Windows可执行文件。
然后,w64
和mingw32
在这些二进制文件的名称中表示什么?
w32
二进制文件是否有任何意义,例如i686-w32-mingw32-gcc
?我认为mingw32
就是它的原因,因为该项目曾被称为mingw32并被重命名为MinGW。
答案 0 :(得分:1)
MinGW基于GCC和binutils以及其他GNU软件。 GNU项目使用所谓的“GNU三元组”来指定体系结构信息。三元组具有以下格式:
machine-vendor-operatingsystem
在构建二进制文件时指定了三元组。
MinGW-w64使用w64
作为供应商字段,mingw32
作为操作系统。当然,mingw32
不是一个操作系统,但它被GCC和binutils构建系统和源代码视为一个。
因此,二进制文件的这些长名称是GCC和binutils正在使用的构建系统的工件。所有这些二进制文件都安装在同一目录中,因此针对不同体系结构的二进制文件(在本例中为32位与64位)需要具有不同的文件名。最简单的方法是在二进制文件前加上描述这些体系结构的GNU三元组。