node 在centos 6.5 上 安裝過程中出現/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found問題的解決


node  在centos 6.5 上 安裝過程中出現/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found問題的解決

在linux redhat 6.4環境下安裝tensorflow的過程中,利用PIP直接安裝是非常快的。

但是在調用測試的過程中,卻發現報這樣的錯誤。

/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found

導致總是出現 failed to load the native tensorflow runtime的信息。

根據這個問題,發現肯定是tensorflow的一些內部控件無法編譯,主要原因還是版本太低。

在終端上輸入如下命令:strings /usr/lib64/libstdc++.so.6|grep GLIBCXX

得到結果:

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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

到13到頭了,所以報錯啦。

為此,工作主要是兩步:

第一步:升級GCC。

下載了最新的6.2.0版本。

https://ftp.gnu.org/gnu/gcc/gcc-6.2.0/

gcc安裝文件下載完成后,執行以下命令解壓文件:

tar -xf gcc-6.2.0.tar.bz2

解壓完成后,執行以下命令進入工作目錄:

cd gcc-6.2.0

執行download_prerequisites腳本,下載gcc依賴文件和庫:

./contrib/download_prerequisites

download_prerequisites腳本,會下載安裝gcc所需的mpfrgmpmpc文件。

建立一個輸出目錄,編譯時所有生成的中間文件都放到該目錄下:

mkdir build

工作目錄切換至輸出目錄,並在其中執行配置和安裝:

cd build

執行configure配置安裝文件:

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

配置完成后,執行以下命令,編譯gcc

make -j 6

注意:編譯gcc時間較長,可以多啟用多個核數來執行。

編譯完成后,安裝gcc

make install

安裝完成后還需要替換系統默認的gcc,執行以下命令,查找6.2版本的安裝文件:

 

strings /usr/local/lib64/libstdc++.so.6|grep GLIBCXX

 

這里該有的都有了,把這份軟鏈到正確的地方,就妥了。
ls -ls /usr/lib64/libstdc++.so*
ls -ls /usr/local/lib64/libstdc++.so*
cp /usr/local/lib64/libstdc++.so.6.0.19 /usr/lib64/
cd /usr/lib64
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.19 libstdc++.so.6 
ls -l libstdc++*

ldconfig

 


免責聲明!

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



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