centos7.6安装gcc6.5.0

发布于:2024-06-26 ⋅ 阅读:(72) ⋅ 点赞:(0)

D11.3需要GLIBCXX\_3.4.22, 之前找人帮我研究的:

一. 说明

1.  操作系统为centos7.6,操作系统软件包为minimal,虚拟机使用了centos7.6对应的EVERYTHING的ISO文件(Centos-7-Everything-1810.iso)

2.  gcc版本与libstdrc、GLIBCXX的对应关系

    gcc-5.2.0:包含libstdc++.so.6.0.21、3.4.21版本及以下的GLIBCXX

    gcc-6.5.0:包含libstdc++.so.6.0.22、3.4.22版本及以下的GLIBCXX

二. 下载安装包并解压

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-6.5.0/gcc-6.5.0.tar.gz

tar -zxvf gcc-6.5.0.tar.gz -C /home/

## 安装依赖包
yum install bzip2 gcc gcc-c++ zlib
cd /home/gcc-6.5.0
#此步骤会下载三个压缩包gmp-4.3.2.tar.bz2、isl-0.15.tar.bz2、mpfr-2.4.2.tar.bz2、mpc-0.8.1.tar.gz。
./contrib/download_prerequisites

#若没有互联网,可提前将gmp、isl、mpfr、mpc四个文件压缩包下载下来,然后修改contrib/download_prerequisites脚本,注释掉从网上下载软件包的代码,而直接使用本地已经下载好的文件。
vi ./contrib/download_prerequisites
#wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
tar xjf $MPFR.tar.bz2 || exit 1
ln -sf $MPFR mpfr || exit 1

#wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
tar xjf $GMP.tar.bz2  || exit 1
ln -sf $GMP gmp || exit 1

#wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
tar xzf $MPC.tar.gz || exit 1
ln -sf $MPC mpc || exit 1

# Necessary to build GCC with the Graphite loop optimizations.
if [ "$GRAPHITE_LOOP_OPT" = "yes" ] ; then
  ISL=isl-0.15

#  wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$ISL.tar.bz2 || exit 1
  tar xjf $ISL.tar.bz2  || exit 1
  # Fix trailing comma which errors with -pedantic for host GCC <= 4.3
  sed -e 's/isl_stat_ok = 0,/isl_stat_ok = 0/' isl-0.15/include/isl/ctx.h > isl-0.15/include/isl/ctx.h.tem && mv isl-0.15/include/isl/ctx.h.tem isl-0.15/include/isl/ctx.h
  ln -sf $ISL isl || exit 1
fi

然后再次执行
./contrib/download_prerequisites
```

三. 编译


mkdir gcc-temp
cd gcc-temp
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j8

四. 获取编译完成后的文件

编译后的文件存放目录为/home/gcc-6.5.0/gcc-temp/x86\_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22

五. 替换系统文件

将文件libstdc++.so.6.0.22拷贝至目标目录/usr/lib64目录下
cd /usr/lib64
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6
六. 验证
strings /lib64/libstdc++.so.6 | grep GLIBC
*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\_3.4.14
GLIBCXX\_3.4.15
GLIBCXX\_3.4.16
GLIBCXX\_3.4.17
GLIBCXX\_3.4.18
GLIBCXX\_3.4.19
GLIBCXX\_3.4.20
GLIBCXX\_3.4.21
GLIBCXX\_3.4.22
GLIBC\_2.3
GLIBC\_2.2.5
GLIBC\_2.14
GLIBC\_2.17
GLIBC\_2.3.2
GLIBCXX\_DEBUG\_MESSAGE\_LENGTH*
 


网站公告

今日签到

点亮在社区的每一天
去签到