以下為最近公升級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...