linux 更新libstdc++.so.6


當在其他機器運行新編譯的程序時,若出現以下錯誤:

libstdc++.so.6: version `GLIBCXX_3.4.22' not found

解決方法一:

進入目錄/usr/lib/x86_64-linux-gnu/

執行

cd /usr/lib/x86_64-linux-gnu/

strings ./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 說明庫內沒有3.4.22的運行時 使用 locate libstdc++.so 查找大於libstdc++.so.6.0.25的庫文件 將此文件復制到 sudo cp /your_path/libstdc++.so.6.0.25 ./ 查看當前libstdc++.so.6的軟鏈接 ls -l libstdc++.so.6 lrwxrwxrwx 1 root root 19 3月 10 20:29 ./libstdc++.so.6 -> libstdc++.so.6.0.19 備份源文件 mv ./libstdc++.so.6 ./libstdc++.so.6_bak 建立軟連接 sudo ln -s libstdc++.so.6.0.25 libstdc++.so.6 查看軟鏈接libstdc++.so.6 ls -l libstdc++.so.6 lrwxrwxrwx 1 root root 19 3月 10 20:29 ./libstdc++.so.6 -> libstdc++.so.6.0.25 再次檢查運行時 strings ./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 GLIBCXX_3.4.25 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.14 GLIBC_2.4 GLIBC_2.18 GLIBC_2.16 GLIBC_2.3.4 GLIBC_2.17 GLIBC_2.3.2 GLIBCXX_DEBUG_MESSAGE_LENGTH

 

 

解決方法二:

sudo apt-get install libstdc++6

 

解決方法三:

-Wl,-rpath=. 編譯選項中添加如上,表示優先在本級目錄中搜索相應的動態庫進行加載,並且將libstdc++.so.6拷貝到可執行程序同一級目錄

通過ldd 查看可執行程序引用的動態庫存放地址

ldd mytest

libstdc++.so.6 => ./libstdc++.so.6 (0x0000ffff91f50000)

說明已經在當前的目錄找到對應的動態庫文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM