MinGW GCC - 单个32位和64位交叉编译器?

时间:2011-03-16 08:47:55

标签: gcc mingw 32bit-64bit

我已经使用mingw-get-inst下载了MinGW,现在我注意到它无法为x64编译。

那么MinGW编译器的 32位 二进制版本是否可以为32位Windows和64位Windows编译?

我不想要一个可以生成32位代码的64位版本,因为我希望编译器也可以在32位Windows上运行,而我只是在这里寻找预编译的二进制文件,而不是源文件,因为我花了无数个小时编译GCC并且失败了,我已经放弃了一段时间。 :(

3 个答案:

答案 0 :(得分:5)

AFAIK mingw目标是32位窗口或64位窗口,但不是两者,因此您需要两次安装。而后者仍然被认为是beta。

如果你想为windows 64编译,你想要的是mingw-w64-bin_i686-mingwmingw-w64-bin_i686-cygwin。对于win32,只需使用mingw-get-inst获得的内容。

有关文件名的说明,请参阅http://sourceforge.net/apps/trac/mingw-w64/wiki/download%20filename%20structure

答案 1 :(得分:5)

我意识到这是一个老问题。然而,这与问题重复多次有关。

经过大量研究后我发现,到现在为止,多年后,默认情况下,从存储库安装mingw时,默认情况下都会安装两个编译器(即synaptic)。

您可以通过运行Linux的locate命令来检查和验证:

 $ locate -r "mingw32.*[cg]++$"

在我的Ubuntu(13.10)安装中,我默认使用以下编译器进行选择...通过发出locate命令找到。

/usr/bin/amd64-mingw32msvc-c++
/usr/bin/amd64-mingw32msvc-g++
/usr/bin/i586-mingw32msvc-c++
/usr/bin/i586-mingw32msvc-g++
/usr/bin/i686-w64-mingw32-c++
/usr/bin/i686-w64-mingw32-g++
/usr/bin/x86_64-w64-mingw32-c++
/usr/bin/x86_64-w64-mingw32-g++

最后,您需要在许多系统上执行的操作最少:

$ sudo apt-get install gcc-mingw32

我希望这个页面的许多链接可以为很多程序员节省一些搜索时间。

答案 2 :(得分:1)

针对您的情况,可以为Mingw64下载multilib(包括lib32和lib64)版本:

Multilib Toolchains(Targetting Win32 and Win64)

默认情况下它是为64位编译的。您可以添加-m32标志来为32位程序进行编译。

可惜的是,没有提供gdb,您应该手动添加它。

因为根据mingw-64的待办事项清单,gcc multilib版本已经完成,但是gdb multilib版本仍在开发中,您可能会在将来使用它。

在configure和gcc中支持multilib构建。通过使用目标三元组-w64-mingw32,部件已经存在于gcc的4.5版本中。
gdb-存在本机支持,但是诸如多体系结构支持(通过一个gdb调试32位和64位)之类的某些功能仍然缺少功能。

mingw-64-todo-list