1. 程式人生 > >/usr/bin/ld: cannot find -lc 的解決辦法

/usr/bin/ld: cannot find -lc 的解決辦法

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更方便