如何在 64 位 RHEL 上编译 32 位应用程序?

Posted

技术标签:

【中文标题】如何在 64 位 RHEL 上编译 32 位应用程序?【英文标题】:How to Compile 32-bit Apps on 64-bit RHEL? 【发布时间】:2014-07-01 12:59:50 【问题描述】:

我正在尝试使用 gcc 4.8 在 RHEL 7 64 位上编译一个 32 位 C 应用程序。我收到编译器错误/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory。我需要做什么才能编译和链接 32 位应用程序?

【问题讨论】:

【参考方案1】:

要让 RHEL 7 64 位编译 gcc 4.8 32 位程序,您需要做两件事。

    确保所有 32 位 gcc 4.8 开发工具都已完全安装:

    sudo yum install glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 ncurses-devel.i686
    

    使用 -m32 标志编译程序

    gcc pgm.c -m32 -o pgm
    

【讨论】:

您可能还想将此答案标记为问题的解决方案。

以上是关于如何在 64 位 RHEL 上编译 32 位应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

在 32 位和 64 位上编译,但校验和不同

如何在 Windows 上编译 64 位版本的 ffmpeg?

在运行 64 位 linux 的 Armv8 (aarch64) 上编译并运行 32 位二进制文​​件

在 64 位机器上编译 32 位:/usr/bin/ld: 找不到 -l<someLibs>

BFD_RELOC_64:使用 C++ 在 32 位 linux 上编译汇编器指令

你能在 64 位机器上编译 32 位 Apache DSO(Oracle HTTP 服务器)吗?