CentOS7升级gcc10

x33g5p2x  于2021-10-31 转载在 其他  
字(2.8k)|赞(0)|评价(0)|浏览(365)

gcc10.2 安装包获取:

wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz

解压包并进入:

$ tar -zxvf gcc-10.2.0.tar.gz
$ cd gcc-10.2.0

安装编译所需要的依赖坏境

$ ./contrib/download_prerequisites

建立临时文件并进行编译安装

$ cd ..
$ mkdir gcc-10.2-build
$ cd gcc-10.2-build
$ ../gcc-10.2.0/configure -enable-checking=release  -enable-languages=c,c++  -disable-multilib
$ make
$ make install
#备份旧gcc二进制文件,并进行替换
$ sudo mv /usr/bin/gcc /usr/bin/gcc.bckup
$ sudo ln -s /usr/local/bin/gcc /usr/bin/gcc
$ reboot    ##重启
$ gcc -v    ##查看gcc/c++版本

检查动态库是否为老版本的

$ strings /usr/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
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

如显示上面的表示是老版本的。升级 gcc 的时候,新版的 gcc 动态库并没有替换老版本 gcc 的动态库,所以这里我们需要手动进行替换升级。

先查找新版 gcc 生成的动态库位置

$ sudo find / -name "libstdc++.so*"
/home/crazyang/gcc-10.2.0-build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/crazyang/gcc-10.2.0-build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/home/crazyang/gcc-10.2.0-build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28

将新版 gcc 动态库 libstdc++.so.6.0.28 复制到 /usr/lib64 目录下:

$ sudo cp /home/crazyang/gcc-10.2.0-build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28 /usr/lib64/

将旧版动态库备份,然后将默认库的软链接指向最新版的 gcc 动态库:

$ cd /usr/lib64/
$ sudo mv libstdc++.so.6 libstdc++.so.6.backup
$ sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6

$ cd /usr/local/lib64/
$ sudo mv libstdc++.so.6 libstdc++.so.6.backup
$ sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6

指完之后再检查动态库:

$ strings /usr/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
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
__strtof_l@@GLIBC_2.2.5
symlink@@GLIBC_2.2.5
_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
chdir@@GLIBC_2.2.5
fileno@@GLIBC_2.2.5
pthread_cond_destroy@@GLIBC_2.3.2

内容太长,只截取前部分,到此 gcc10 已经升级完成。

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-10.2.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (GCC)

注意:需要重启系统。

转载:https://blog.csdn.net/weixin_43976122/article/details/108053736

相关文章

微信公众号

最新文章

更多