Linuxオフライン(手動)でGCC-4.8をアップグレード

13771 ワード

この記事では、システムがインターネットに接続できない場合に、GCCをアップグレードする方法について説明します.オフラインとオンラインアップグレードの主な違いは、ネットワークに接続できれば、gccをアップグレードする前にインストールする必要がある依存パッケージは、gccインストールパッケージの下のスクリプトを実行することで、多くの面倒を避けることができることです.
現在のシステムおよびGCCバージョンOS:Red Hat 6.3 GCC:4.4.6
まずgccインストールパッケージをダウンロードし、本文はgcc-4.8.5である.tar.gz、解凍後、インストールディレクトリのconfigureスクリプトを直接実行すると、現在のシステムのGMP、MPFR、MPCのバージョンが低すぎるため、次のエラーが発生する可能性があります.
...
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

ネットワーク環境であれば、インストールディレクトリの下で実行できます」./contrib/download_prerequisitesスクリプトは、関連する依存をダウンロードします.ローカルエリアネットワーク内にあるため、この3つのインストールパッケージをインターネットにダウンロードし、1つずつインストールする必要があります.
  • gmp:インストールパッケージダウンロードパスftp://ftp.gnu.org/gnu/gmp/
  • mpfr:インストールパッケージダウンロードパスhttp://ftp.gnu.org/gnu/mpfr/
  • mpc:インストールパッケージダウンロードパスhttp://ftp.gnu.org/gnu/mpc/ここで用いる実装パッケージはgcc-4.8.5である.tar.gz,gmp-5.0.5.tar.bz2,mpfr-3.0.1.tar.gz,mpc-1.0.1.tar.gz.

  • インストールgmp GMPは任意の精度のオープンソース演算ライブラリであり、シンボル整数、有理数、浮動小数点数計算に使用できます.
    # tar -jxvf gmp-5.0.5.tar.bz2
    # cd gmp-5.0.5
    # ./configure
    # make & make check
    # make install

    インストールmpfr mpfrは主にC/C++多精度浮動小数点演算を提供する.
    # tar -zxvf mpfr-3.0.1.tar.gz
    # cd mpfr-3.0.1
    # ./configure  --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib
    # make & make check
    # make install

    実装mpc Gnu MpcはC/C++に高精度で正確に丸められた複素計算を提供する.
    # tar -zxvf mpc-1.0.1.tar.gz
    # ./configure
    # make & make check
    # make install

    インストール後、ヘッダファイルは「/usr/local/include」にあり、デフォルトではプログラムは自動的にパスを見つけることができます.動的ライブラリは「/usr/local/lib」にあり、現在のユーザーの環境変数にパスを追加できます.
    # vim ~/.bash_profile
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64:/usr/lib64
    # source ~/.bash_profile

    GCCのインストール
    # tar -zxvf gcc-4.8.5.tar.gz
    # cd gcc-4.8.5

    コンパイルディレクトリを作成します.インストールパッケージルートディレクトリの構成スクリプトを使用して、gccコンパイル前の構成を行います.このディレクトリの下でMakefileファイルを生成し、コンパイル結果を現在のディレクトリに保存します.
    # mkdir gcc-build-4.8 ; cd gcc-build-4.8

    どのような構成を行いますか?現在のgccコンパイラの構成を参考に、gcc-vを直接実行すればよい
    # 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.6 20120305 (Red Hat 4.4.6-4) (GCC) 

    以前の構成を参考にして、実際の必要に応じて、ネットワークダウンロード依存のコンパイル項目をいくつか削除しました.今回のコンパイル構成は以下の通りです.
    # ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info  --disable-multilib --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 --enable-java-awt=gtk --disable-dssi --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux

    現在のディレクトリの下でMakefileファイルが生成され、makeを実行してコンパイルされます.時間がかかります.
    # make & make instal

    検証インストールは、「gcc-v」でインストール後のgccバージョンを表示するほか、C++11標準のプログラムを作成することで検証できます.C++11プログラムをコンパイルするときは、「std=c++11」を追加する必要があります.そうしないと、デフォルトではC 99でコンパイルされ、エラーが発生します.