在64位Linux操作系统上编译32位程序会导致致命错误

运用

gcc -m32 myprog.c 

应该在32位版本中编译myprog.c文件。

不幸的是我得到这个错误:

 In file included from /usr/include/stdio.h:27:0, from myprog.c:1: /usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory #include <sys/cdefs.h> 

我怎么能解决这个问题?

如果我不使用-m32它可以使用64位指令。

要编译64位Linux版本的32位二进制文​​件,必须安装libx32gcc开发包和32位GNU C库

尝试这个

 sudo apt-get install libx32gcc-4.8-dev 

 sudo apt-get install libc6-dev-i386 

您需要gcc multilib支持。 安装包gcc-multilib 。 例如:

 sudo apt-get install gcc-multilib