您的位置:首页 > 编程语言 > C语言/C++

tensorflow 1.0安装过程中出现/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found问题的解决

2017-02-22 17:35 761 查看
在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版本。

wget http://gcc.parentingamerica.com/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2[/code] 


gcc
安装文件下载完成后,执行以下命令解压文件:

tar -xf gcc-6.2.0.tar.bz2


解压完成后,执行以下命令进入工作目录:

cd gcc-6.2.0


执行
download_prerequisites
脚本,下载
gcc
依赖文件和库:

./contrib/download_prerequisites


download_prerequisites
脚本,会下载安装
gcc
所需的
mpfr
gmp
mpc
文件。

建立一个输出目录,编译时所有生成的中间文件都放到该目录下:

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
版本的安装文件:

第二步:升级GLIBCXX

注意,进入GCC编译输出目录,.libs是隐藏的:build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs

用下面的命令查看:
strings libstdc++.so.6.0.22|grep GLIBCXX

一般来讲,里面就有满足需要的GLIBCXX版本了。
然后,把该文件拷贝到了/usr/lib64下.
然后将libstdc++.so.6指向libstdc++.so.6.0.22:

这一步一定要在ROOT权限下执行。

rm -r libstdc++.so.6

rm: remove symbolic link `libstdc++.so.6'? y

ln -s libstdc++.so.6.0.18 libstdc++.so.6

这就Ok了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Tensorflow 安装