centos7编译安装gcc9.2

原先的centos7中安装的gcc编译器为4.8.5,版本太旧,执行一些程序完全不够用阿 比如 网易云音乐等
所以今天博主带你升级gcc9.2.0最新版

1.查看当前gcc版本

# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

2.获取安装包并解压

# cd /usr/local
# wget https://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz
# tar -xvf gcc-9.2.0.tar.gz

3.进入解压后的gcc文件夹,下载供编译需求的依赖项

# cd gcc-build-9.2.0
# ./contrib/download_prerequisites

4.建立一个文件夹存放编译文件

# cd gcc-9.2.0
# mkdir build

5.生成 Makefile 文件并且安装(此过程极为漫长)

# make && make install

6.设置为默认编译器

# export PATH=/usr/local/gcc-9.2.0/bin:$PATH
# vim ~/.bashrc (最后一行加入 export PATH=/usr/local/gcc-9.2.0/bin:$PATH )

7.查找编译gcc时生成的最新动态库

# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
[root@ay build]# find / -name "libstdc++.so*"
find: ‘/run/user/1000/gvfs’: 权限不够
/var/lib/flatpak/runtime/com.deepin.wine.Platform/i386/2.18.1/4733a106047bcb12e32c60a47370d9d7288aca3a80f28e0da9f71f5497bfec98/files/lib/i386-linux-gnu/libstdc++.so.6
/var/lib/flatpak/runtime/com.deepin.wine.Platform/i386/2.18.1/4733a106047bcb12e32c60a47370d9d7288aca3a80f28e0da9f71f5497bfec98/files/lib/i386-linux-gnu/libstdc++.so.6.0.25
/var/lib/flatpak/runtime/com.deepin.wine.Platform/i386/2.18.1/4733a106047bcb12e32c60a47370d9d7288aca3a80f28e0da9f71f5497bfec98/files/lib/i386-linux-gnu/libstdc++.so.6.0.25-gdb.py
find: ‘/tmp/.mount_jetbraDGRolG’: 权限不够
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.bak
/usr/lib64/libstdc++.so.6.0.27
/usr/lib64/libstdc++.so.6
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/usr/local/gcc-9.2.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27
/usr/local/gcc-9.2.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/gcc-9.2.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/gcc-9.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27
/usr/local/gcc-9.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/gcc-9.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/gcc-9.2.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27
/usr/local/gcc-9.2.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/gcc-9.2.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27
/usr/local/gcc-9.2.0/lib64/libstdc++.so.6
/usr/local/gcc-9.2.0/lib64/libstdc++.so
/usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27-gdb.py

8.将找到的动态库libstdc++.so.6.0.27复制到/usr/lib64

# cp /usr/local/gcc-9.2.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 /usr/lib64

9.切换工作目录至/usr/lib64,删除原来的软连接, 将默认库的软连接指向最新动态库。

# cd /usr/lib64
# rm -rf libstdc++.so.6
# ln -s libstdc++.so.6.0.27 libstdc++.so.6

10.验证

# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-9.2.0/libexec/gcc/x86_64-pc-linux-gnu/9.2.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:../configure --prefix=/usr/local/gcc-9.2.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
线程模型:posix
gcc 版本 9.2.0 (GCC) 

到此完成gcc9.2的安装

转载请保留作者信息
轻风云 » centos7编译安装gcc9.2

4 评论

  1. 这文章copy的吧,前后接不上

    1. 复制的bash 安装过才发的

  2. 博主,你页面显示markdown的代码插件是什么?可以分享一下吗?→_→

    1. 模板自带的

发表评论

快乐肥宅的技术生活

立即查看 了解详情