#macos #docker #arm #qemu #usermode
Вопрос:
Я только что настроил среду x86-64 на arm64 M1 Mac Mini с помощью образа Ubuntu Docker. Я установил соответствующее программное обеспечение, такое как кросс-компилятор GCC AArch64 и QEMU в пользовательском режиме.
Я знаю, что эта настройка работает в подсистеме Windows для Linux (также дистрибутив Ubuntu), за исключением того, что эмуляция SPARC-64 не работает. Но когда вы делаете это на Mac с помощью Docker, 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