【发布时间】:2018-03-13 03:08:36
【问题描述】:
我最近尝试使用dpkg-buildpackage 在一些只有 2 GB RAM 的低端 ARM 板上本地编译一些 Debian 软件包。 CMake 构建运行了相当长的一段时间,但越来越慢,直到由于内存不足而中断(几个小时后)。这是因为应用程序的代码是相当复杂的 C++ 代码,其中包含很多东西并且几乎每一个都静态链接。很遗憾,这无法更改。
我现在打算在一些大型云 ARM 服务器(96 核,128 GB RAM)上运行它,但它运行一些 arm64 Debian 9。
是否可以在某些 Debian 9 arm64 服务器上运行 Debian 9 armhf 系统?
如果是,应该如何设置。
【问题讨论】:
-
很遗憾,包括 Cavium ThunderX 在内的一些 64 位 ARM CPU 仅支持 64 位。我没有成功找到支持 32 位的 ARM 云服务器。
-
谢谢,这个问题正是我现在看到的。 Qemu 似乎也无法在该云服务器上运行它。这就是 qemu-debootstrap 在阶段 1 之后返回的内容:
I: Running command: chroot stretchtest /debootstrap/debootstrap --second-stage chroot: failed to run command ‘/debootstrap/debootstrap’: Exec format error -
不是我的问题的答案,但我的问题的解决方案是使用 Clang/LLVM 进行构建。它使用的内存比 GCC 少得多,并最终成功编译了整个项目,但它抱怨一些隐式转换,需要通过显式
static_cast修复才能工作。
标签: docker arm embedded-linux arm64