当前位置: 代码迷 >> 综合 >> 服务器安装tensorflow,导入tensorflow时出现/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found
  详细解决方案

服务器安装tensorflow,导入tensorflow时出现/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found

热度:51   发布时间:2023-12-17 16:54:24.0

我的环境: Centos 7.6, tensorflow1.14

我的解决方法:升级了gcc,然后移除 /lib64/libstdc++.so.6,然后链接ibstdc++.so.6.0.26 到 /lib64/libstdc++.so.6

升级gcc的方法参考:https://www.liuhaolin.com/linux/535.html

gcc安装编译

yum update -y
yum install -y  gcc-c++  glibc-static gcc bzip2 wget tmuxcd ~
wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz
tar -xzf gcc-9.1.0.tar.gz
cd gcc-9.1.0# 这个下载过程比较久
./contrib/download_prerequisites
# gmp-6.1.0.tar.bz2: OK
# mpfr-3.1.4.tar.bz2: OK
# mpc-1.0.3.tar.gz: OK
#isl-0.18.tar.bz2: OK
# All prerequisites downloaded successfully. # 指定路径到 /usr/local/gcc
./configure --prefix=/usr/local/gcc  --enable-bootstrap  --enable-checking=release --enable-languages=c,c++ --disable-multilib# 该过程也很久,服务器如果是两核的就不建议加 -j4 参数
time make -j4make install

gcc安装后的设置

# 环境变量path
echo  "export PATH=/usr/local/gcc/bin:$PATH" >> /etc/profile.d/gcc.sh
source /etc/profile.d/gcc.sh# 头文件
ln -sv /usr/local/gcc/include/ /usr/include/gcc# 库文件
echo "/usr/local/gcc/lib64" >> /etc/ld.so.conf.d/gcc.conf
ldconfig -v
ldconfig -p |grep gcc

查看gcc版本

gcc -vUsing built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-pc-linux-gnu/9.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 9.1.0 (GCC) 

 

更新 /lib64/libstdc++.so.6

参考:https://stackoverflow.com/questions/49797965/updating-libstdc-so-6-to-glibcxx-3-4-21-and-cxxabi-1-3-9-after-updating-to-gcc

# 查看/lib64/libstdc++.so.6对应的版本是6.0.19
ls -ali /lib64/libstdc++.so.6
267435 lrwxrwxrwx 1 root root 19 Dec 28 09:10 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

查看更新gcc后的版本

find / -name "libstdc++.so.6*"/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/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.py
/usr/local/gcc/lib64/libstdc++.so.6
/usr/local/gcc/lib64/libstdc++.so.6.0.26-gdb.py
/usr/local/gcc/lib64/libstdc++.so.6.0.26
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19

移除更新

rm -f /lib64/libstdc++.so.6# 链接新的libstdc++.so.6.0.26 到 /lib64/libstdc++.so.6
ln -s /usr/local/gcc/lib64/libstdc++.so.6.0.26 /lib64/libstdc++.so.6

 

  相关解决方案