gcc – 32位构建在64位CentOS 5主机上

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

问题是我的64位主机没有gcc,所以我使用“sudo yum install gcc”和斯坦福大学的repo镜子安装了gcc(这个64位主机的默认存储库不可用,因此yum超时).这允许我构建valgrind,它适用于本地的东西(例如“valgrind ls -l”),但在尝试运行它为我在另一台主机上构建的32位程序时失败了.我终于想通了valgrind的configure脚本检测到我没有在主机上有32位构建支持(通过运行“configure –enable-only32bit”,它报告“检查32位构建支持……没有”) .

那么如何获得32位gcc等支持呢?我试过“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”

好的,这是scoop,多亏了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”.所以谷歌搜索“什么包有gnu / stubs-32.h”把我带到了我上面提到的stackoverflow页面.

最佳答案 尝试:

yum install glibc-devel.i686

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

点赞