亚洲av电影,av天堂,少女のトゲ在线观看 ,性欧美4khdxxxx,无码人妻丰满熟妇区免费

上一篇 下一篇 分享鏈接 返回 返回頂部

詳解CentOS7如何升級(jí)GCC版本以解決GLIBCXX_3.4.21未找到的問題

發(fā)布人:會(huì)長(zhǎng)君 發(fā)布時(shí)間:2024-05-28 13:07 閱讀量:7964

最近在亞洲云服務(wù)器上運(yùn)行一個(gè)Linux平臺(tái)的程序的時(shí)候啟動(dòng)報(bào)錯(cuò)了:

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 

出現(xiàn)這個(gè)錯(cuò)誤是因?yàn)镃entOS7當(dāng)前版本默認(rèn)的GCC的版本太老,里面的動(dòng)態(tài)鏈接庫沒有GLIBCXX_3.4.21。接下來就是我分析,解決這個(gè)問題的過程,記錄下來給別人也給自己做個(gè)記錄

檢查動(dòng)態(tài)庫

首先執(zhí)行命令檢查動(dòng)態(tài)庫:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

輸出結(jié)果如下:

[root@asiayun lib]# strings /usr/lib64/libstdc++.so.6 |grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

可以看出我的最高版本是3.4.19

輸入命令查看libstdc++.so.6的位置

find / -name libstdc++.so.6*

輸出結(jié)果如下:

[root@asiayun lib]# find / -name "libstdc++.so*"
/root/Downloads/vmware-tools-distrib/lib/lib64/libstdc++.so.6
/root/Downloads/vmware-tools-distrib/lib/lib64/libstdc++.so.6/libstdc++.so.6
/root/Downloads/vmware-tools-distrib/lib/lib32/libstdc++.so.6
/root/Downloads/vmware-tools-distrib/lib/lib32/libstdc++.so.6/libstdc++.so.6
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib/vmware-tools/lib64/libstdc++.so.6
/usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/32/libstdc++.so
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++.so

可見我的最高版本文件是libstdc++.so.6.0.19

安裝高版本GCC

接下來就需要進(jìn)行升級(jí)了,首先下載GCC源碼,選擇合適自己的版本,我下載的7.3.0。

這是GCC下載地址,里面有各個(gè)版本的源碼http://ftp.gnu.org/gnu/gcc/

安裝編譯環(huán)境

yum groupinstall "Development Tools"
yum install glibc-static libstdc++-static

將下載的源碼包拷貝到Downloads目錄進(jìn)行解壓

tar -zxvf gcc-7.3.0.tar.xz

然后就是進(jìn)入源碼目錄開始進(jìn)行編譯了,下面是連續(xù)的幾個(gè)命令

cd gcc-7.3.0
./contrib/download_prerequisites
mkdir build
cd build

生成make文件并且編譯,此處編譯時(shí)間比較久(為防止斷開SSH鏈接,建議使用寶塔面板的終端或其他通過網(wǎng)頁走內(nèi)網(wǎng)進(jìn)行ssh的工具進(jìn)行處理)

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make

檢查安裝情況

編譯完成后,進(jìn)行安裝

make install 

安裝完成后查看版本是否已經(jīng)更新

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

輸出結(jié)果,發(fā)現(xiàn)并沒有更新到最新動(dòng)態(tài)庫

[root@asiayun build]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

查找編譯gcc時(shí)生成的最新動(dòng)態(tài)庫:

find / -name "libstdc++.so*"

輸出結(jié)果:

[root@asiayun build]# find / -name "libstdc++.so*"
/root/Downloads/vmware-tools-distrib/lib/lib64/libstdc++.so.6
/root/Downloads/vmware-tools-distrib/lib/lib64/libstdc++.so.6/libstdc++.so.6
/root/Downloads/vmware-tools-distrib/lib/lib32/libstdc++.so.6
/root/Downloads/vmware-tools-distrib/lib/lib32/libstdc++.so.6/libstdc++.so.6
/root/Downloads/gcc-7.3.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/root/Downloads/gcc-7.3.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/Downloads/gcc-7.3.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/Downloads/gcc-7.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/root/Downloads/gcc-7.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/Downloads/gcc-7.3.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/root/Downloads/gcc-7.3.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
/root/Downloads/gcc-7.3.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/Downloads/gcc-7.3.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib/vmware-tools/lib64/libstdc++.so.6
/usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/usr/local/lib64/libstdc++.so.6.0.24
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so
/usr/local/lib64/libstdc++.so.6.0.24-gdb.py

可以看到我們生成的最新版本文件在這個(gè)位置:

/usr/local/lib64/libstdc++.so.6.0.24

下面我們就拷貝文件到lib目錄,并重新建立軟鏈接:

cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64/
rm libstdc++.so.6
ln -sf /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

一切搞定,最后我們?cè)俅_認(rèn)GLIBCxx的版本

strings /usr/lib64/libstdc++.so.6 |grep GLIBC

輸出結(jié)果如下:

[root@asiayun build]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

至此,我們就成功升級(jí)了linux系統(tǒng)的GCC版本。

 

 

 

 

 

 

 

 

 

目錄結(jié)構(gòu)
全文
QQ通知群 QQ通知群
微信公眾號(hào) 微信公眾號(hào)
服務(wù)熱線: 400-0505-056
電子郵箱: [email protected]