![如何使用 snapcraft 为 ubuntu core 交叉构建应用程序](https://linux22.com/image/880214/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20snapcraft%20%E4%B8%BA%20ubuntu%20core%20%E4%BA%A4%E5%8F%89%E6%9E%84%E5%BB%BA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我使用 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镜像,这样您就拥有了本机编译的环境。