CentOS 7はgcc-5.4をインストール.バージョン0

21552 ワード

centos 7バージョンはgccが4.8であるため.5バージョン.高バージョンに自動的にアップグレードできないため、手動で更新するしかありません.CentOS 7 安装gcc-5.4.0版本_第1张图片
gcc 5を取り付ける.4
    gcc        :

gcc-5.4.0.tar.gzインストールパッケージhttp://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
gmp-4.3.2.tar.bz 2 gcc依存パケットftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
mpfr-2.4.2.tar.bz 2 gcc依存パケットhttp://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
mpc-0.8.1.tar.gz gcc依存パケットhttp://www.multiprecision.org/downloads/mpc-0.8.1.tar.gz
上記の3つの依存バージョンの根拠はgcc-5.4である.0.tar.gz解凍後gcc-5.4.0/contrib/download_prerequisitesファイルには次のように表示されます.
# Necessary to build GCC.
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1
, root, sudo。
gmp-4.3を取り付ける.2
[root@localhost gcc-build]#tar -xjvf gmp-4.3.2.tar.bz2
[root@localhost gcc-build]#cd gmp-4.3.2
[root@localhost gcc-build]#mkdir gmp-build
[root@localhost gcc-build]#cd gmp-build
# --prefix ,
[root@localhost gcc-build]#../configure --prefix=/usr/local/gmp-4.3.2
[root@localhost gcc-build]#make
[root@localhost gcc-build]#make install

mpfr-2.4をインストールします.2 mpfr gmp, gmp。
[root@localhost gcc-build]#tar -xjvf mpfr-2.4.2.tar.bz2
[root@localhost gcc-build]#cd mpfr-2.4.2
[root@localhost gcc-build]#mkdir mpfr-build
[root@localhost gcc-build]#cd mpfr-build
[root@localhost gcc-build]#../configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2
[root@localhost gcc-build]#make
[root@localhost gcc-build]#make install

mpc-0.8を取り付ける.1.tar.gz
[root@localhost gcc-build]#tar -xzvf mpc-0.8.1.tar.gz
[root@localhost gcc-build]#cd mpc-0.8.1
[root@localhost gcc-build]#mkdir mpc-build
[root@localhost gcc-build]#cd mpc-build
[root@localhost gcc-build]#../configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2
[root@localhost gcc-build]#make
[root@localhost gcc-build]#make install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib:/usr/local/mpc-0.8.1/lib:/usr/local/mpfr-2.4.2/lib

gcc-5.4を取り付ける.0
[root@localhost gcc-build]#tar -xzvf gcc-5.4.0.tar.gz
[root@localhost gcc-build]#cd gcc-5.4.0
[root@localhost gcc-build]#mkdir gcc-build
[root@localhost gcc-build]#cd gcc-build
[root@localhost gcc-build]#../configure --prefix=/usr/local/gcc-5.4.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
[root@localhost gcc-build]#make
[root@localhost gcc-build]#make install

gcc-5.4です0インストールは完了するがgcc-5.4.0の環境変数はまだ設定されていませんが、システムで使用されているのは旧版のgccです. gcc , gcc
#  gcc-4.4.7 
mkdir /usr/gcc447backup/
mv /usr/bin/{gcc,g++} /usr/gcc447backup
ln -s /usr/local/gcc-5.4.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-5.4.0/bin/g++ /usr/bin/g++
gcc -v
gcc -v

表示されたgccバージョンが以前のバージョンであれば、システムを再起動することができます.which gccはgccのインストール位置を表示します.
このときコンパイラがヒントを見つけたら:version`GLIBCXX_3.4.21’not found問題.
そして、libstdc++などのファイルを使用する場合、gcc 4が使用されていることに気づきます.4.2、新しいgccでコンパイルされたsoは使用されていません.このとき、最新のsoを検索し、soを/usr/lib 64の下にコピーして再ソフトリンクする必要があります.
次の文を使用して、sudoを追加する権限がないことに注意して、最新のsoファイルを表示します.
find / -name "libstdc++.so*"

/usr/lib 64にコピーします.次にlibstdc++.so.6ソフトは最新のライブラリにリンクし、ここはlibstdc++.so.6.0.21
ln -snf /usr/local/gcc-5.4.0/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6

成功したらstringsで表示したり、他のファイルを表示したりすることができます.原理は似ています.
strings /usr/lib64/libstdc++.so.6 | grep GLIBC

libmpfr.so.1 libgmp.so.3 libmpc.so.2 lib 64にソフトリンクがない場合
ln -s  /usr/local/gmp-4.3.2/lib/libgmp.so.3  /usr/lib64/libgmp.so.3
ln -s  /usr/local/mpc-0.8.1/lib/libmpc.so.2  /usr/lib64/libmpc.so.2
ln -s  /usr/local/mpfr-2.4.2/lib/libmpfr.so.1 /usr/lib64/libmpfr.so.1

/usr/lib 64にソフトリンクがある場合は、リンクを再変更します.
ln –snf   /usr/local/gmp-4.3.2/lib/libgmp.so.3  /usr/lib64/libgmp.so.3
ln –snf   /usr/local/mpc-0.8.1/lib/libmpc.so.2  /usr/lib64/libmpc.so.2
ln –snf   /usr/local/mpfr-2.4.2/lib/libmpfr.so.1 /usr/lib64/libmpfr.so.1

注意:1.gccのインストールエラー:configure: error: error verifying int64_t uses long long
sudo yum install gcc-c++

2.解凍エラー:tar (child): bzip2: exec:
 yum -y install bzip2