如何使用debuild在我的amd64笔记本电脑上构建i386和amd64软件包
我希望能够构建我的包的多个版本( i386
和amd64
),这些版本具有非平凡的依赖关系(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