使用-m32进行编译会产生“ Exec格式错误”

时间:2019-04-28 15:51:24

标签: linux gcc

我正在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,但我不确定。如果正确,我可以在哪里开始故障排除以解决此错误?

0 个答案:

没有答案