【问题标题】:32 bit builds on 64 bit CentOS 5 hosts32 位构建在 64 位 CentOS 5 主机上
【发布时间】:2012-07-20 02:53:09
【问题描述】:

我正在尝试在 64 位主机(运行 CentOS 5.8)上构建 valgrind (3.7.0)。我需要使用 valgrind 来检查 32 位程序的性能(构建在 32 位主机上,我需要 32 位,因为程序需要在 32 位和 64 位主机上运行)。

问题是我的 64 位主机没有 gcc,所以我使用斯坦福大学 repo 镜像的“sudo yum install gcc”安装了 gcc(这个 64 位主机的默认 repos 不可用,因此 yum 超时)。这使我能够构建 valgrind,它适用于本地内容(例如“valgrind ls -l”),但在尝试为我在另一台主机上构建的 32 位程序运行它时失败。我终于发现 valgrind 的配置脚本检测到我在主机上没有 32 位构建支持(通过运行“configure --enable-only32bit”报告“正在检查 32 位构建支持......没有”) .

那么我如何获得对 gcc 等的 32 位支持?我尝试了“yum search gcc | grep i386”,然后安装了任何看起来像 32 位 C 的东西(“sudo yum install compat-glibc.i386 compat-libgcc-296.i386 compat-libstdc++-296.i386 compat-libstdc++-33. i386 libgcc.i386 libstdc++.i386 libstdc++-devel.i386 libstdc++44-devel.i386 edac-utils.i386 edac-utils.x86_64 nspluginwrapper.i386") 但“configure --enable-only32bit”仍然报告不支持 32 位.

PS:yum.conf 看起来非常小,即没有排除。唯一奇怪的是“installonly_limit = 5”

好的,这是独家新闻,感谢Error "gnu/stubs-32.h: No such file or directory" while compiling Nachos source code

简短的回答是安装 glibc-devel.i386(无论如何在 CentOS 5.8 上......对于不同的发行版,它有不同的名称,例如 glibc-devel.i686、libc6-dev-i386 等),可能除了我上面列出的其他软件包(我没有卸载这些软件包以查看 glibc-devel.i386 本身是否足够)。

通过检查配置脚本并看到它尝试使用“-m32”编译最小的 C 程序,我找到了要搜索的正确问题,如果失败,则配置脚本报告“不支持 32 位”。所以我创建了经典的 HelloWorld C 程序并编译它(“cc -m32 hello.c”)。这抱怨缺少头文件“gnu/stubs-32.h”。所以谷歌搜索“what package has gnu/stubs-32.h”把我带到了我上面引用的stackoverflow页面。

【问题讨论】:

    标签: gcc centos 32bit-64bit valgrind yum


    【解决方案1】:

    试试:

    yum 安装 glibc-devel.i686

    如果这不起作用,请检查此解决方案:How to compile a 32-bit binary on a 64-bit linux machine with gcc/cmake

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 2014-11-27
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 2016-12-02
      • 2012-03-08
      • 2011-12-17
      • 2016-11-08
      相关资源
      最近更新 更多