23

我有使用 -m32 开关(在 DMD 和/或 GCC 中)成功编译的应用程序以生成:

appname: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.15, not stripped

我创建的源程序包在 32 位和 64 位 Ubuntu 上都可以正常工作,以构建适当的二进制 .debs。

我想在我用来生成 64 位 .deb 的同一台 64 位机器上生成 i386 .deb。

这可能吗,我应该在哪里寻找说明?

4

3 回答 3

19

答案取决于构建的复杂性。当普通的 64 位用户空间工具足以构建时,只需通过 -a 指定架构

debuild -ai386

但是,在某些情况下这通常不起作用,在这些情况下,您将需要 pbuilder。pbuilder 在 chroot-ed 环境中构建一个干净的 Debian/Ubuntu 系统。man pbuilder是一个很好的介绍。要开始,您需要:

sudo pbuilder --create --architecture i386
sudo pbuilder --build mypackage.dsc
于 2011-10-31T16:18:49.487 回答
3

它首先使用 -ai386 选项调用 debuild,这将更改构建包的体系结构。

当然,您必须确保包中包含应用程序的 i386 版本。

于 2011-10-30T12:37:17.913 回答
-2

您不会做任何与构建 64 位 .deb 不同的事情。除非您包含应用程序的 32 位版本。

控制文件指定了架构,因此请确保您选择了正确的架构。

于 2011-10-29T23:05:27.977 回答