Я пытаюсь создать и запустить мой кросс-компилятор (который является 32-разрядным), и я не могу выполнить двоичный файл, я получаю Исполнительную ошибку формата.
file
и readelf
утверждайте, что это - 32-разрядный исполняемый файл, но ldd
не соглашается. Что я пропускаю здесь? Та же процедура работает над основанными на Redhat хостами.
$ ./arm-none-linux-gnueabi-gcc -v
bash: ./arm-none-linux-gnueabi-gcc: cannot execute binary file: Exec format error
$ ldd arm-none-linux-gnueabi-gcc
not a dynamic executable
$ file arm-none-linux-gnueabi-gcc
arm-none-linux-gnueabi-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped
$ cat /etc/issue
Ubuntu 14.04.5 LTS \n \l
и вот является ответом. 32-разрядные предварительно скомпилированные двоичные файлы не работают под подсистемой Linux на Linux.