1. gcc没有加-static参数
使用find /usr/ -name "libc.so",如果没有内容搜出来,那么就是qlibc没有装,需要安装一个。在CentOS-6.2-x86_64-bin-DVD1.iso里面有qlibc的安装包。网上很多配yum repo的教程,照做就好。如果明确知道缺少什么,直接mount -o loop CentOS-6.2-x86_64-bin-DVD1.iso /media/cdrom然后cd /media/cdrom/Packages,rpm安装qlic就行,不用配置yum repo那么麻烦;网络通的情况下,yum install glibc glibc-devel更快捷。
如果使用find /usr/ -name "libc.so"搜到了内容,那么检查搜到的软链接的有效性吧。如果不行,可以卸掉qlibc再重装一个。
2. gcc 使用-static参数
网上有些朋友见到/usr/bin/ld: cannot find -lc 这个错误就认为是libc.so的问题,这稍显片面。当链接时指定了-static参数时,ld找的是libc.a。这个家伙在qlibc-static包里。在安装centos6.2时,32bit的centos会把静态的c库安装上,64bit的却没有,在CentOS-6.2-x86_64-bin-DVD1.iso里也找不到。实际上,它在dvd2里,如何安装就不说了……
当然,同上,如果已经联网的话,yum install glibc-static更方便