我正在x86_64位处理器上运行64位Arch Linux。我从源代码编译了内核,因为我有一些需要内核补丁的硬件。我有一个简单的测试程序main.c:
#include <stdio.h>
int main() {
printf("alsfdjadfslkajsdflkafj");
}
当我使用-m32标志进行编译并运行程序时
gcc -m32 main.c -o main
./main
我得到以下输出:“无法执行二进制文件:执行格式错误”。
我已经为gcc安装了multilib软件包。当我运行objdump -d main
时,文件顶部显示“ main:文件格式elf32-i386”。它是否正确?我认为应该说i686,但我不确定。如果正确,我可以在哪里开始故障排除以解决此错误?