【发布时间】:2013-08-18 05:43:10
【问题描述】:
我正在用 C++ 编程。我已经安装了mingw。我从 mingw 网站的标准安装程序安装它。我对 mingw32、mingw、mingw64 感到困惑。有什么区别以及如何检查我的版本。另外,当我的程序构建时,我怎么知道创建的可执行文件是 32 位还是 64 位?
【问题讨论】:
我正在用 C++ 编程。我已经安装了mingw。我从 mingw 网站的标准安装程序安装它。我对 mingw32、mingw、mingw64 感到困惑。有什么区别以及如何检查我的版本。另外,当我的程序构建时,我怎么知道创建的可执行文件是 32 位还是 64 位?
【问题讨论】:
mingw 和 mingw32 用于为 32 位 Windows 系统创建可执行文件。 mingw64 用于创建 64 位可执行文件。注意:这与您在构建时运行的版本无关,而是与您正在创建的可执行文件的目标系统有关(您将在其上运行新创建的可执行文件的系统)。
关于 MinGW 和 MinGW32,这里有一个来自
The MinGW Wiki
"项目名称由 mingw32 改为 MinGW 是为了防止 暗示 MinGW 仅适用于 32 位系统(如 64 位和 更高位的机器变得越来越普遍,MinGW 将不断发展以与之合作 他们)。”
要找出您拥有的版本,请转到相关的 bin 目录并执行以下操作:
gcc --version
我建议从这里查看 minGW-w64:http://mingw-w64.sourceforge.net/
该项目的目标是“为开发 64 位 (x64) 和 32 位 (x86 ),使用 gcc-4.6 或更新版本的 windows 应用程序。”
【讨论】:
如 cmets 中所示,to the currently accepted answer gcc --version 不会给出目标信息,而是给出gcc 本身的版本。
而gcc -v 将打印有关编译器环境的详细信息。其中你会发现64位(如“x86_64”所示)
Target: x86_64-w64-mingw32
或32位(如“i686”所示)
Target: i686-w64-mingw32
【讨论】:
x64 是 64 位,i686 是 32 位版本