在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