让我详细说明一下我试图完成的一些细节。
我的最终目标是拥有两个debian软件包:一个包含为x86构建的二进制文件,另一个包含为ARM构建的二进制文件。在debian / control中,我定义了两个不同的包,而且这两个包的架构当前都设置为“any”。
我尝试按照https://wiki.debian.org/PkgSplit上的说明进行操作,并查看debhelper(http://www.fifi.org/doc/debhelper/examples/rules.multi2)的rules.multi2示例,但到目前为止没有运气。
源是一个Qt项目,它将同时部署到x86和ARM。
我使用dpkg-buildpackage成功构建,但无论我如何尝试,我的源代码只编译一次。
达到我的目标的理想方式是,“仅仅”足以在debian /规则中输入正确的信息以便工作,还是我必须采取另一种方法?我不确定这是否可行;我刚开始走错了路(我是debian包装世界的新手)。
(我故意不在现阶段包括我的debian / control和debian / rules,如果需要,我会提供进一步的细节,因为它们在这个阶段有点乱)。
编辑: 我通过这条评论引导了PkgSplit https://askubuntu.com/questions/246718/change-environment-variables-in-debian-rules-according-to-debian-control-targets/908351#908351 但对我来说,答案有点神秘,所以非常感谢你的帮助。
答案 0 :(得分:2)
没有
单次运行dpkg-buildpackage
将为单个体系结构创建二进制包(amd64
或i386
,或armhf
或s390x
或其他)
只需多次调用dpkg-buildpackage
来构建多个架构(
dpkg-buildpackage -rfakeroot
dpkg-buildpackage -rfakeroot --host-arch i386
dpkg-buildpackage -rfakeroot --host-arch armhf
这将创建(最多)3个包:一个本机架构(最有可能:amd64
),一个用于x86_32
(又名i386
)和一个用于树莓( armhf
)。
顺便说一下, PkgSplit 文档讨论了为同一架构创建多个软件包的问题。例如当你有一个库时,你通常希望将它分成库部分(安装libfoo.so.1
)和开发部分(安装头文件)。