我使用 snapcraft 在 x86 系统上为 arm 目标开发了一个 Ubuntu Core 应用程序。
包含snapcraft.yaml
并architectures: [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镜像,这样您就拥有了本机编译的环境。