美文网首页
gcc和g++降级、升级_Ubuntu18 LTS

gcc和g++降级、升级_Ubuntu18 LTS

作者: Jason416 | 来源:发表于2018-12-14 16:17 被阅读0次

    前言

    由于很多开发环境所用的环境都是比较追求稳定,或者未跟上编译器的更新速度;还有有些代码是依赖于gcc/g++的内建特性的。导致有些用新版本的gcc/g++编译时无法通过,或者编译后无法正常运行的。就需要对自带的编译器进行升级或者降级。

    步骤说明

    笔者这里需要用版本低一点的gcc/g++工具链,需要对Ubuntu18 LTS自带的7.3.0进行降级操作。以下是流程:

    • 安装gcc-4.8和g++-4.8
      $ sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
    
    • 查找原gcc/g++所在目录
      $ which gcc
      $ /usr/bin/gcc
    
    • 重新创建gcc软链接
      $ sudo ln -sf /usr/bin/gcc-4.8        /usr/bin/gcc
      $ sudo ln -sf /usr/bin/gcc-ar-4.8     /usr/bin/gcc-ar
      $ sudo ln -sf /usr/bin/gcc-nm-4.8     /usr/bin/gcc-nm
      $ sudo ln -sf /usr/bin/gcc-ranlib-4.8 /usr/bin/gcc-ranlib 
      $ sudo ln -sf /usr/bin/gcov-4.8       /usr/bin/gcov
    
      $ ls -al /usr/bin/gc*
      lrwxrwxrwx 1 root root     16 12月 25 22:13 /usr/bin/gcc -> /usr/bin/gcc-4.8
      -rwxr-xr-x 1 root root 772280 3月  19  2018 /usr/bin/gcc-4.8
      lrwxrwxrwx 1 root root     22 7月  26 20:25 /usr/bin/gcc-7 -> x86_64-linux-gnu-gcc-7
      lrwxrwxrwx 1 root root     19 12月 25 22:13 /usr/bin/gcc-ar -> /usr/bin/gcc-ar-4.8
      -rwxr-xr-x 1 root root  27088 3月  19  2018 /usr/bin/gcc-ar-4.8
      lrwxrwxrwx 1 root root     25 7月  26 20:25 /usr/bin/gcc-ar-7 -> x86_64-linux-gnu-gcc-ar-7
      lrwxrwxrwx 1 root root     19 12月 25 22:13 /usr/bin/gcc-nm -> /usr/bin/gcc-nm-4.8
      -rwxr-xr-x 1 root root  27088 3月  19  2018 /usr/bin/gcc-nm-4.8
      lrwxrwxrwx 1 root root     25 7月  26 20:25 /usr/bin/gcc-nm-7 -> x86_64-linux-gnu-gcc-nm-7
      lrwxrwxrwx 1 root root     23 12月 25 22:13 /usr/bin/gcc-ranlib -> /usr/bin/gcc-ranlib-4.8
      -rwxr-xr-x 1 root root  27088 3月  19  2018 /usr/bin/gcc-ranlib-4.8
      lrwxrwxrwx 1 root root     29 7月  26 20:25 /usr/bin/gcc-ranlib-7 -> x86_64-linux-gnu-gcc-ranlib-7
      -rwxr-xr-x 1 root root   3405 4月   9  2018 /usr/bin/gcore
      lrwxrwxrwx 1 root root     17 12月 25 22:13 /usr/bin/gcov -> /usr/bin/gcov-4.8
      -rwxr-xr-x 1 root root 318472 3月  19  2018 /usr/bin/gcov-4.8
      lrwxrwxrwx 1 root root     23 7月  26 20:25 /usr/bin/gcov-7 -> x86_64-linux-gnu-gcov-7
      lrwxrwxrwx 1 root root     11 9月  17 15:07 /usr/bin/gcov-dump -> gcov-dump-7
      lrwxrwxrwx 1 root root     28 7月  26 20:25 /usr/bin/gcov-dump-7 -> x86_64-linux-gnu-gcov-dump-7
      lrwxrwxrwx 1 root root     11 9月  17 15:07 /usr/bin/gcov-tool -> gcov-tool-7
      lrwxrwxrwx 1 root root     28 7月  26 20:25 /usr/bin/gcov-tool-7 -> x86_64-linux-gnu-gcov-tool-7
      -rwxr-xr-x 1 root root  10312 3月  13  2018 /usr/bin/gcr-viewer
    
    • 重新创建g++软链接
      $ sudo ln -sf g++-4.8 /usr/bin/g++
    
      $ ls -al /usr/bin/g+*
      lrwxrwxrwx 1 root root     16 12月 25 22:13 /usr/bin/g++ -> /usr/bin/g++-4.8
      -rwxr-xr-x 1 root root 776376 3月  19  2018 /usr/bin/g++-4.8
      lrwxrwxrwx 1 root root     22 7月  26 20:25 /usr/bin/g++-7 -> x86_64-linux-gnu-g++-7
    

    查看结果

      $ gcc -v
      Using built-in specs.
      COLLECT_GCC=gcc
      COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
      Target: x86_64-linux-gnu
      Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.5-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
      Thread model: posix
      gcc version 4.8.5 (Ubuntu 4.8.5-4ubuntu8)
    
      $ g++ -v
      Using built-in specs.
      COLLECT_GCC=g++
      COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
      Target: x86_64-linux-gnu
      Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.5-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
      gcc version 4.8.5 (Ubuntu 4.8.5-4ubuntu8)
    

    说明:降级与升级类似,替换软链接源即可。

    相关文章

      网友评论

          本文标题:gcc和g++降级、升级_Ubuntu18 LTS

          本文链接:https://www.haomeiwen.com/subject/dayghqtx.html