腾讯云CentOS7.6中gcc4.5.8升级到8.3.0

由于安装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
此时再次查看动态库就发现已更新

gcc升级到4.7以上 参考文档 https://blog.51cto.com/191226139/2066137 安编译依赖软件包 yum install gcc gcc-c++ glibc-static -y cp -a /mnt/backup/software/php-7.3.9.tar.gz /root/ 下载gcc源码包与依赖包 wget -c http://mirror.koddos.net/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz tar -zxvf /root/gcc-src/gcc-4.8.5.tar.gz -C /root/ tar xvf /root/gcc-src/cloog-0.18.4.tar.gz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/gmp-6.1.2.tar.xz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/isl-0.14.tar.gz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/mpc-1.0.3.tar.gz -C /root/gcc-4.8.5/ tar xvf /root/gcc-src/mpfr-3.1.4.tar.gz -C /root/gcc-4.8.5/ 或者 tar xvf /root/gcc-src/mpfr-3.1.4.tar.bz2 -C gcc-4.8.5/ mv /root/gcc-4.8.5/cloog-0.18.4 /root/gcc-4.8.5/cloog mv /root/gcc-4.8.5/gmp-6.1.2/ /root/gcc-4.8.5/gmp mv /root/gcc-4.8.5/isl-0.14/ /root/gcc-4.8.5/isl mv /root/gcc-4.8.5/mpc-1.0.3/ /root/gcc-4.8.5/mpc mv /root/gcc-4.8.5/mpfr-3.1.4/ /root/gcc-4.8.5/mpfr cd /root/gcc-4.8.5/ mkdir gcc-build && cd gcc-build ../configure --prefix=/usr/local/gcc-4.8.5 --enable-checking=release --enable-bootstrap --enable-languages=c,c++ --disable-multilib --enable-gather-detailed-mem-stats --with-long-double-128 出错后清空编译目录下的相关文件 # make distclean 查看CPU的核数,使用时应使用2倍值 lscpu |grep -A 1 'Model name' make -j 4 或者 make 编译过程约40~50分钟左右,占用2.7G空间 make install 检验版本 /usr/local/gcc-4.8.5/bin/gcc -dumpversion /usr/local/gcc-4.8.5/bin/g++ -dumpversion /usr/local/gcc-4.8.5/bin/c++ -dumpversion 添加LD_LIBRARY_PATH 临时生效 export LD_LIBRARY_PATH="/usr/local/gcc-4.8.5/lib64:$LD_LIBRARY_PATH" 永久生效 echo '/usr/local/gcc-4.8.5/lib64' > /etc/ld.so.conf.d/gcc4.8.5.conf ldconfig 出现以下提示,把这个文件删除了或忽略它:ldconfig: /usr/local/gcc-4.8.5/lib64/libstdc++.so.6.0.19-gdb.py is not an ELF file - it has the wrong magic bytes at the start. rm -rf /usr/local/gcc-4.8.5/lib64/libstdc++.so.6.0.19-gdb.py cd /usr/local/gcc-4.8.5/bin && ln -s gcc cc 添加环境变量 echo 'export PATH=/usr/local/gcc-4.8.5/bin:$PATH' >> /etc/profile source /etc/profile 查看版本 gcc -v cc -v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值