如何使用 snapcraft 为 ubuntu core 交叉构建应用程序

如何使用 snapcraft 为 ubuntu core 交叉构建应用程序

我使用 snapcraft 在 x86 系统上为 arm 目标开发了一个 Ubuntu Core 应用程序。

包含snapcraft.yamlarchitectures: [armhf]snapcraft 生成一个.armhf.snap文件。这似乎没问题。

但是如果某个部分包含使用 的 Ubuntu 依赖项stage-packages,则生成的快照仅包含 x86_64 库。

如何修复此问题?

答案1

不幸的是,Snapcraft 尚不支持交叉构建。为了构建 x86 的 snap,它需要在 x86 主机上运行;对于 arm,则需要在 arm 主机上运行。

确实,正如 didrocks 所提到的,您可以使用 Ubuntu Core 16.04 上的 Classic Dimension 直接在 Snappy 设备上运行 Snapcraft。

答案2

还要注意,Snappy Ubuntu Core 16.04(仍在开发中)具有经典维度,使您能够直接在设备上构建,因此您将不再遇到跨架构问题。

答案3

您还可以安装docker app,并从docker hub导入ubuntu镜像,这样您就拥有了本机编译的环境。

相关内容