2012-07-20 61 views
4

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

问题是我的64位主机没有gcc,所以我使用“sudo yum install gcc”和斯坦福大学的回购镜像安装了gcc(这个64位主机的默认回放是不可用的,因此yum是计时出)。这允许我构建valgrind,并且它适用于本地的东西(例如“valgrind ls -l”),但是在尝试运行我在另一个主机上构建的32位程序时失败。我终于明白,valgrind的配置脚本检测到我没有在主机上的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”

OK,这里是瓢,由于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是否足够本身)。

我通过检查configure脚本并看到它试图编译一个带有“-m32”的最小C程序并且如果失败,那么配置脚本报告“没有32位支持”来寻找正确的问题。所以我创建了经典的HelloWorld C程序并编译它(“cc -m32 hello.c”)。这抱怨缺少头文件“gnu/stubs-32.h”。所以谷歌搜索“什么软件包有gnu/stubs-32.h”将我带到上面引用的stackoverflow页面。

回答