我刚刚使用 Ubuntu Docker 映像在 arm64 M1 Mac Mini 上设置了 x86-64 环境。我已经安装了GCC AArch64交叉编译器和用户态QEMU等相关软件。
我知道这个设置适用于 Linux 的 Windows 子系统(也是 Ubuntu 发行版),除了 SPARC-64 仿真失败。但是当使用 Docker 在 M1 Mac 上执行此操作时,QEMU 报告:
mmap stack: Cannot allocate memory
这是程序的源代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello World!\n");
return 0;
}
我用命令编译的:
aarch64-linux-gnu-gcc \
-Xlinker -dynamic-linker \
/usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 \
hello-world.c -o hello-world
并执行:
qemu-aarch64 ./hello-world