在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位指令。

2 Solutions collect form web for “在64位Linux操作系统上编译32位程序会导致致命错误”

要编译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 
  • 如何在Ubuntu中设置ANDROID_HOMEpath? 请提供步骤
  • ubuntu的ImportError:不能导入名字MAXREPEAT
  • 标题和客户端库次要版本不匹配
  • 如何获得当前git分支的名字到一个shell脚本中的variables?
  • s3cmd失败太多次了
  • 我应该如何纠正MariaDB Columnstore在Docker中运行失败?
  • pipe理IDE和操作系统之间的键盘快捷方式冲突(Ubuntu)
  • 错误:刚刚无法加载已安装的软件包
  • 为什么Ubuntu 14.04在4.3版本时贴(旧)Eclipse 3.8?
  • 在Ubuntu 11.10上安装IDEA
  • 完全删除MySQL 5.5