Gcc 如何在x86_64主机上为i386 arch编译应用程序

Gcc 如何在x86_64主机上为i386 arch编译应用程序,gcc,compilation,x86-64,i386,Gcc,Compilation,X86 64,I386,多年来,我一直拒绝切换到x86_64平台,最终我做出了切换。主要是因为我想和docker一起玩(FTW:) 在我的职责范围内,我通常必须为32位平台构建应用程序。因此,需要在x86_64主机上为i386编译应用程序 我正在使用ubuntu 13.04。在发布这个问题之前,我环顾四周想弄清楚这一点 以下是我收集的信息: 1.需要安装gcc multilib(apt get install gcc multilib) 2.需要安装ia32 libs(apt get install ia32 libs

多年来,我一直拒绝切换到x86_64平台,最终我做出了切换。主要是因为我想和docker一起玩(FTW:)

在我的职责范围内,我通常必须为32位平台构建应用程序。因此,需要在x86_64主机上为i386编译应用程序

我正在使用ubuntu 13.04。在发布这个问题之前,我环顾四周想弄清楚这一点

以下是我收集的信息: 1.需要安装gcc multilib(apt get install gcc multilib) 2.需要安装ia32 libs(apt get install ia32 libs) 3.我们需要指定-m32开关为GCC

因此,我可以为i386编译应用程序。 例如

我无法解决这个问题。我该如何解决它。根据我目前的理解,我已经安装了所有需要的软件包

我已经考虑过使用 A.Linux容器/docker。 BUbuntu13.04 i386被囚禁的根

上述两种方法都有效。但是,在达到能够建造的程度之前,还有相当多的障碍需要克服

但还有什么比在x86_64主机上编译i386应用程序更好的呢

非常感谢您的帮助

谢谢和问候
~Sameer

您需要为每个库安装32位dev软件包

在这种情况下,您应该安装:

sudo apt-get install zlib1g-dev:i386

您需要为每个库安装32位dev软件包

在这种情况下,您应该安装:

sudo apt-get install zlib1g-dev:i386

谢谢我还必须安装i386版本的开发头文件。我不知道apt get install zlib1g dev:i386我假设头文件在不同平台上保持不变。我错了。再次感谢。哎呀,我忘了
libz.a
zlib1g-dev
中。现在修复了答案。不同平台的头文件通常不兼容,这是由于类型大小等的宏造成的。当我试图安装libz dev:i386时,它变得有点奇怪。作为命令的结果,它刚刚摆脱了gcc。不过,我们可以毫无问题地重新安装它。我不知道为什么apt要删除gcc。我总是忘记在点击“Y”之前检查要删除的内容列表。从来都不是一个好错误。我不知道它为什么这么做,它就是这么做的(谢谢。我还必须安装i386版本的开发头文件。我不知道。$apt get install zlib1g dev:i386我假设头文件在不同平台上保持不变。男孩我错了。再次谢谢。哎呀,我忘了
libz.a
zlib1g dev
中。现在修复了答案。不同的头文件一般来说,由于类型大小之类的宏,ent平台不兼容。当我尝试安装libz dev:i386时,它变得有点奇怪。由于这个命令,它刚刚摆脱了gcc。虽然能够重新安装,但没有任何问题。不确定为什么它会摆脱gcc。我总是忘记检查要删除的内容列表在打“Y”之前。从来都不是一个好的错误。我不知道它为什么这样做,它只是这样做了(
sudo apt-get install zlib1g-dev:i386