我正在尝试构建并运行我的交叉编译器(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
答案1
答案就是:32 位预编译二进制文件无法在 Linux 的 Linux 子系统下运行。