由于安装CentOS7.6默认的gcc版本为4.5.8,但安装tensorflow时会报错:libc++.6中缺少GBXXX3.4.20,因此升级到高版本
安装步骤也是参考网上各位前辈的贡献,但就我安装时出现的错误进行了相应的补充:
1.安装开发环境:
$ yum group install “Development Tools”
$ yum install glibc-static libstdc+±static
2.手动下载gcc安装包(通过终端直接下载老是出错),并上传到云端(我用的是WinSCP)
gcc的下载链接:http://mirror.hust.edu.cn/gnu/gcc/gcc-6.4.0/
选择对应的版本,一般选择较高的版本,比较全面,以防再出现缺少项(尽量别碰8.0及以上版本,各种坑)
3.解压
$ tar -zxvf gcc-8.3.0.tar.gz
4.进入文件夹目录
$ cd gcc-8.3.0
5.利用源码包里面的工具下载所需的依赖包
$ ./contrib/download_prerequisites
6.创建编译输出目录并进入该目录
$mkdir build
$cp build
7.生成MakeFile
$ …/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
8.编译
$make
这个过程mayber会出现error,我遇到的是configure: error: C++ preprocessor “/lib/cpp” fails sanity check。这个是由于C++编译器的包没有安装,请退出现在的目录回到根目录下(root)执行:
$yum install glibc-headers
$yum install gcc-c++
其他错误eg:https://www.jianshu.com/p/cedbdf0b6bca
然后删除之前创建的build文件夹,并从第六步开始
9.安装
$ make install
查看gcc版本
gcc -v
找到gcc安装位置
find / -name libstdc++.so.6*
查看动态库
strings /lib64/libstdc++.so.6 | grep GLIBC
通过以上动态库可以看出并没将新安装的更新进去,因此要建立软连接
cp /usr/local/lib64/libstdc++.so.6.0.25 /usr/lib64
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.25 libstdc++.so.6
此时再次查看动态库就发现已更新