アップグレードGCCサポートC++11

3761 ワード

一、エラー発生状況:
sh setupを使用します.shソフトウェアをインストールするとき、以下のエラーを報告します.
...
configure: error: *** A compiler with support for C++11 language features is required.
---
ERROR: failed to configure xapian-core-scws, see 'setup.log' for more detail

二、エラー原因:
gccバージョンが低すぎます
 
三、問題解決:
(1)現在のgccバージョンを表示する:
    gcc -v
結果:gccバージョン4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
(2)高バージョンのgccをダウンロードする:
    wget ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz
(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++ --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ディレクトリを環境変数、/etc/pfofileファイルに追加します.
バージョンが最新のインストールバージョンになっているかどうかを確認します.
(9)標準ライブラリの更新
(このステップは、gccのアップグレード後、標準ライブラリが古いか、いくつかのコンパイル操作に影響を与える可能性があります.)
1、先ほどインストールした新しいGCCのディレクトリに入る:cd/usr/local/gcc-8.3.0
2、ライブラリディレクトリへのアクセス:cd lib 64(システムが64ビットであればlib 64ディレクトリへ、そうでなければlibディレクトリへ)
3、現在のライブラリの最新バージョン:lsを表示し、結果はlibstdc++.so.6.0.25
4、システムのデフォルトのライブラリディレクトリにコピーする:
        cp libstdc++.so.6.0.25/usr/lib 64/(注:システムが32:cp libstdc+.so.6.0.25/usr/lib/)5である場合、/usr/lib 64に進み、関連するバージョン情報を表示する: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        
 
GLIBCXX_3.4
GLIBCXX_3.4.1
.
.
.
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

最新の25バージョンに更新されていることがわかります.
 
発生する可能性のあるエラー:
実行中configureコマンドでは、次のエラーが発生する可能性があります.
...  
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.

誤った説明、gccのインストールには、GMP 4.2+、MPFR 2.4の3つの依存性が必要である.0+ and MPC 0.8.0+.
エラーには、ダウンロードページのアドレスも表示されます.ftp://gcc.gnu.org/pub/gcc/infrastructure/.
1、リンクを開く:ftp://gcc.gnu.org/pub/gcc/infrastructure/.
2、必要な3つのパッケージのアドレスを見つけて、ダウンロードします:
      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

4、MPFRのインストール:
tar -jxvf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure
make && make install

5、MPCをインストールする:
tar -zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure
make && make install

export LD_LIBRARY_PATH="/usr/local/lib"