1. 程式人生 > >解決'GLIBC_2.14' not found問題時遇到的坑

解決'GLIBC_2.14' not found問題時遇到的坑

最近用到c++11需要升級glibc庫。

網上有很多解決'GLIBC_2.14' not found問題的帖子。

無非就是如下的一些操作命令:

1. glibc下載 從http://www.gnu.org/software/libc/ 下載原始碼。我下載的版本是2.14,連結地址是http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。 2. 安裝 具體步驟如下:
[[email protected] ~]# tar zxvf glibc-2.14.tar.gz -C /home/software/
[[email protected] ~]# cd /home/software/glibc-2.14
[
[email protected]
glibc-2.14]# mkdir /opt/build [[email protected] glibc-2.14]# cd build [[email protected] build]# ../configure --prefix=/opt/glibc-2.14 [[email protected] build]# make -j4 [[email protected] build]# make install
如果沒有碰到坑,那麼恭喜你已經完成了安裝,後續也就是庫環境設定了。

下面先說一下遇到的坑:

1、在make過程中出現如下錯誤:

/usr/bin/install: `include/limits.h' and `/opt/glibc-2.14/include/limits.h' are the same file

在經過google後,不太理解相關帖子的含義,後來自行修煉後,明白了。

原因就是樓主解壓的glic-2.14.tar.gz原始碼和編譯時定義的目錄../configure --prefix=/home/software/glibc-2.14放到了一起。

所以解決方法就是:

tar zxvf glibc-2.14.tar.gz -C /home/software/
../configure --prefix=/opt/glibc-2.14

只要將編譯定義目錄和原始碼目錄區分開就ok了。

2、在make install過程中出現如下錯誤:

Can't open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directory

就是缺少了必要的編譯檔案ld.so.conf。通過find命令找到對應的檔案位置。

[[email protected] build]# find / -name "ld.so.conf"
/etc/ld.so.conf


然後我們執行命令把此檔案拷貝到對應的檔案目錄下去,然後繼續編譯。

[[email protected] build]# cp /etc/ld.so.conf /opt/glibc-2.14/etc/
[[email protected] build]# make install

Congratulations! 編譯成功!

最後就是設定環境變數,因為glibc庫使用廣泛,為了避免汙染當前系統環境,在使用時候定義一下環境變數。

執行命令

[[email protected] ~]# export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH

將庫的位置臨時定位在/opt/glibc-2.14/lib位置。

此時再執行相關程式即可順利執行。