centos7编译安装gcc9.2

云青
2019-08-19 / 4 评论 / 2,485 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年07月14日,已超过93天没有更新,若内容或图片失效,请留言反馈。

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

1.安装编译环境

  # yum install -y gcc bzip2 glibc-headers gcc-c++

2.查看当前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)

3.获取安装包并解压

    # 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

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

    # cd gcc-9.2.0
    # ./contrib/download_prerequisites

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

    # mkdir build && cd build

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

    # ../configure --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
    # make && make install

7.设置为默认编译器

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

8.查找编译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

9.将找到的动态库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

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

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

11.验证

    # 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的安装

0

评论 (4)

取消
  1. 头像
    xbw1220
    Windows 10 · Google Chrome

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

    回复
    1. 头像
      云青 作者
      Windows 7 · Google Chrome
      @ xbw1220

      复制的bash 安装过才发的

      回复
  2. 头像
    Ever丶
    Windows 10 · Google Chrome

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

    回复
    1. 头像
      云青 作者
      Windows 7 · Google Chrome
      @ Ever丶

      模板自带的

      回复
Title - Artist
0:00