如何使用debuild在我的amd64笔记本电脑上构建i386和amd64软件包

我希望能够构建我的包的多个版本( i386amd64 ),这些版本具有非平凡的依赖关系(gtk等)。

我的构建脚本使用cmake

目前,命令debuild -i -us -uc -b只在我的ubuntu 64bits发行版上构建amd64 ,而我没有安装任何交叉编译工具链。

如何为两个平台构建二进制文件?

包装(即debuild )不是这里的难点:构建应用程序是。

有许多方法可以在64位系统上构建i386二进制文件

使用32位虚拟机

通过virtualbox安装一个很简单。

这是迄今为止最简单的,但需要大量的磁盘空间,您需要从头开始设置整个系统。

设置chroot

我们的想法是在您的64位设置中创建一个最小的i386沙箱。

您将在chroot中安装应用程序的所有构建工具链和i386依赖项,并从那里执行构建。

这种方法比vm方法轻,并且提供了很多隔离。

Kaizou教程清楚地解释了如何做到这一点

准备构建gtk vala应用程序的chroot将在你的硬盘驱动器上吃大约700M。

使用交叉编译

如果安装了multilib工具链,cmake可以轻松构建应用程序。

multilib工具链可以通过安装

 sudo apt-get install g++-multilib 

然后你必须为cmake指定m32参数,这样才能构建易于使用的 i386二进制文件。

当然,您需要在计算机上安装应用程序依赖项的所有i386变体。

只要apt你的神,这可以通过以下方式完成:

 dpkg --add-architecture i386 apt-get update apt-get install libgtk-3-dev:i386 libgee-0.8-dev:i386 ... 

完成后,您可以打包shiny的i386二进制文件

 debuild -ai386 -i -us -uc -b debuild clean