centos7 2編譯安裝gcc 4 9 2

2021-07-15 18:11:40 字數 3974 閱讀 3730

以下為最近公升級gcc4.9.2的實際操作步驟

環境: centos-7.2 , 當前版本為gcc-4.8.5,用root進行安裝

1、先要執行下面這一條命令,安裝g++:

yum install gcc-c++

wget

wget

tar -zxvf gmp-5.1.3.tar.gz

cd gmp-5.1.3

./configure

make && make install

cd ..

tar -zxvf mpfr-3.1.2.tar.gz

cd mpfr-3.1.2

./configure

make && make install

cd ..

tar -zxvf mpc-1.0.tar.gz

cd mpc-1.0

./configure

make && make install

cd ..

3、安裝gcc:

wget

tar -jxvf gcc-4.9.2.tar.bz2

cd gcc-4.9.2

./contrib/download_prerequisites 

cd ..

mkdir gcc-build-4.9.2

cd gcc-build-4.9.2

../gcc-4.9.2/configure--enable-checking=release--enable-languages=c,c++--disable-multilib

make

make install

4、修改/usr/bin/下gcc版本

執行/usr/bin/gcc--version檢視版本:

gcc (gcc) 4.4.7-4

/usr/local/bin/gcc--version:

gcc (gcc) 4.8.2

發現多個版本的gcc。

此時執行以下操作:

mv /usr/bin/gcc /usr/bin/gcc4.4.7

ln -s /usr/local/bin/gcc /usr/bin/gcc

mv /usr/bin/g++ /usr/bin/g++4.4.7

ln -s /usr/local/bin/g++ /usr/bin/g++

mv /usr/bin/cc /usr/bin/cc4.4.7

ln -s /usr/local/bin/gcc /usr/bin/cc

mv /usr/bin/c++ /usr/bin/c++4.4.7

ln -s /usr/local/bin/c++ /usr/bin/c++

export ld_library_path=/usr/local/lib64:$ld_library_path

5、檢查動態庫:

strings /usr/lib64/libstdc++.so.6 | grep glibc

輸出結果:

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

glibc_2.2.5

glibc_2.3

glibc_2.4

glibc_2.3.2

glibcxx_force_new

glibcxx_debug_message_length

從以上輸出可以看出,gcc的動態庫還是舊版本的。說明出現這些問題,是因為公升級gcc時,生成的動態庫沒有替換老版本gcc的動態庫。

問題處理:

執行以下命令,查詢編譯gcc時生成的最新動態庫:

find / -name"libstdc++.so*"

輸出結果:

/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so

/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so

/usr/lib64/libstdc++.so.6

/usr/lib64/libstdc++.so.6.0.13

/usr/local/lib64/libstdc++.so.6

/usr/local/lib64/libstdc++.so.6.0.20

/usr/local/lib64/libstdc++.so

/usr/local/lib64/libstdc++.so.6.0.20-gdb.py

/home/yl/gcc-build-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

/home/yl/gcc-build-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20

/home/yl/gcc-build-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so

/home/yl/gcc-build-4.9.2/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

/home/yl/gcc-build-4.9.2/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20

/home/yl/gcc-build-4.9.2/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so

/home/yl/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

/home/yl/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20

/home/yl/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so

將上面的最新動態庫libstdc++.so.6.0.21複製到/usr/lib64目錄下:

cp /home/yl/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20 /usr/lib64/

複製後,修改系統預設動態庫的指向,即:重建預設庫的軟連線。

切換工作目錄至/usr/lib64:

cd /usr/lib64/

刪除原來軟連線:

rm -rf libstdc++.so.6

將預設庫的軟連線指向最新動態庫:

ln -s libstdc++.so.6.0.20 libstdc++.so.6

預設動態庫公升級完成。重新執行以下命令檢查動態庫:

strings /usr/lib64/libstdc++.so.6 | grep glibc

完成安裝。

CentOS 7 2編譯安裝Tengine

tengine官網上有個非常簡單的教程,中間並未涉及到一些常用的設定,所以僅供參考。一下午為本人的安裝步驟及過程。配置firewalld,iptables,關閉selinux 1 安裝必要的編譯環境好 由於tengine安裝需要使用源 自行編譯,所以在安裝前需要安裝必要的編譯工具 yum y upd...

CentOS 7 2編譯安裝Tengine

tengine官網上有個非常簡單的教程,中間並未涉及到一些常用的設定,所以僅供參考。一下午為本人的安裝步驟及過程。配置firewalld,iptables,關閉selinux 1 安裝必要的編譯環境好 由於tengine安裝需要使用源 自行編譯,所以在安裝前需要安裝必要的編譯工具 yum y upd...

centos 7 2 編譯安裝caffe

yum install git git clone cd caffe cp makefile.config.example makefile.config yum install vim yum install gcc yum y groupinstall development tools yum...