c++ - 在 64 位 Linux 操作系统上编译 32 位程序导致 fatal error

使用

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

https://stackoverflow.com/questions/23498237/

相关文章:

linux - yum 可以告诉我哪些存储库提供了特定的包吗?

linux - 如何从 Bash 中的字符串中删除所有非数字字符?

linux - 为什么使用 dd 克隆磁盘时使用 conv=notrunc?

linux - 如何将 ISO8859-15 转换为 UTF8?

python - 比较两个图像的 python/linux 方式

linux - 是否可以使用 shell 脚本递归地创建文件夹?

regex - 在 Linux 中,名称与正则表达式匹配的文件的磁盘使用情况?

linux - 仅当变量包含特定字符串时才运行 Ansible 任务

linux - 导出在我的 shell 脚本中不起作用

linux - 如何获取自上次使用 bash 修改文件以来的时间(以秒为单位)?