CentOS 6 升級 GCC 支持C++11(c++11升級包)


整個過程耗時 >4小時

升級之后,gcc可能無法正常使用,出現錯誤:找不到編譯器。

 

 

1 查看gcc版本

[root@testtest ~]# gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../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-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)

 

 

2 下載gcc

http://ftp.gnu.org/gnu/gcc/

 

wget ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz

109MB

 

3 解壓

tar -zxvf gcc-8.3.0.tar.gz

4 進入目錄

cd gcc-8.3.0

5 配置

    ./configure --prefix=/usr/local/gcc-8.3.0 --enable-checking=release --enable-languages=c,c++,gfortran --disable-multilib

      注意,如果出現錯誤以下錯誤: configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
      請看文章底部的錯誤解決方法。

 

6 編譯

make

7 安裝

make install

8 查看版本

gcc -v

      如果發現版本沒有變化,

      可以刪除舊版本的gcc,如果舊版的是用yum安裝的,可以使用 yum remove gcc

      然后把新安裝的gcc的bin目錄(/usr/local/gcc-8.3.0/bin)添加到環境變量(PATH)中,/etc/profile 文件中。  

  • 讓/etc/profile文件修改后立即生效 ,可以使用如下命令:
  •         # source /etc/profile

 

      再查看版本,是否已變成最新安裝的版本。

9 更新標准庫

      (這一步,應該是需要的,gcc升級后,標准庫還是舊的,可能影響一些編譯操作。)

      1、進入到剛才安裝新的GCC的目錄中:cd /usr/local/gcc-8.3.0

      2、進入到庫目錄:cd lib64 (注意:系統如果是64位的就進入到lib64目錄,否則進入到lib目錄)

      3、查看當前庫的最搭版本:ls,結果看到:libstdc++.so.6.0.25

      4、復制到系統默認的庫目錄下:

        cp libstdc++.so.6.0.25 /usr/lib64/  (注意:系統如果是32:cp libstdc++.so.6.0.25 /usr/lib/)
      5、進入到/usr/lib64下,查看相關的版本信息

        cd /usr/lib64
        
ls -l | grep libstdc++

        結果:
        ...   libstdc++.so.6 -> libstdc++.so.6.0.13
        ...  libstdc++.so.6.0.13
                            ...   libstdc++.so.6.0.25
      6、刪除舊的軟連接:
        rm -f libstdc++.so.6
      7、建立新的軟連接:
        ln -s libstdc++.so.6.0.25 libstdc++.so.6

      8、查看標准庫最新的版本:

        strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX  ##  strings 在對象文件或二進制文件中查找可打印的字符串      

 

      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_FORCE_NEW

 

      GLIBCXX_DEBUG_MESSAGE_LENGTH

     可以看到,已更新到最新的25版本。

 

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

=======================================================

安裝gcc需要這三個依賴:GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+。

錯誤中還指出了下載頁面的地址:

ftp://gcc.gnu.org/pub/gcc/infrastructure/

 

1、打開鏈接:

ftp://gcc.gnu.org/pub/gcc/infrastructure/



2、找到需要的三個包地址,下載下來:

cd ..

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

3、安裝GMP:      

tar -jxvf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
./configure
make && make install
cd ..

4、安裝MPFR:

tar -jxvf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure
make && make install
cd ..

5、安裝MPC: 

tar -zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure
make && make install
cd ..

export LD_LIBRARY_PATH="/usr/local/lib"

 

 

 

The following requested languages could not be built: gfortran
Supported languages are: c,brig,c,c++,fortran,go,lto,objc,obj-c++

 

=======================================================

 

REF

https://blog.csdn.net/weiwangchao_/article/details/103897043/

https://gcc.gnu.org/projects/cxx-status.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM