配置要求:
系統:centos6.5
目標:基於CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6介面的caffe框架
gcc是linux編譯安裝必備的編譯器
CentOS6.5自帶的gcc版本是4.4.7,並不支援C++11
查詢後可得需要版本高於4.8.1的gcc才能支援C++11
輸入
yum info gcc
發現可升級的gcc版本低於4.8.1,只能手動編譯安裝4.8.1版本以上的gcc
編譯安裝手動下載的包需要用到cmake
輸入
cmake -version
檢視cmake版本,若不存在則輸入
yum install cmake
進行安裝
編譯安裝gcc
1 下載gcc4.8.2原始碼
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -jxvf gcc-4.8.2.tar.bz2
2 下載編譯原始碼所需要的依賴項
cd gcc-4.8.2
./contrib/download_prerequisites
這個命令可以讓原始碼包自動幫我們下載編譯gcc所需要的gmp,mpfr和mpc三個依賴項.
3 建立一個空資料夾作為編譯的輸出目錄,並生成Makefile檔案
mkdir build -gcc-4.8.2
cd build -gcc-4.8.2
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
../configure的意思是從這個資料夾的上一級資料夾執行configure檔案,後面是所要設定的初始詳見configure –help.
4 編譯
make -j4
後面-j4是cmake對多核處理器的優化,根據cpu的核心數自己做調整.
漫長的等待.
5 安裝
make install
6 驗證安裝
重啟後檢視gcc版本
gcc -v
若看到4.8.2則表示安裝成功
遇到的問題
1 在新的gcc沒有安裝成功前,不要!不要!!不要!!!解除安裝低版本的gcc
因為make時還是需要呼叫gcc的,本人第一次編譯時就是因為先把4.4.7版本的gcc解除安裝了編譯到一半是終止了,錯誤提示是無法識別c++
2 gcc的連結問題
兩種情況,第一種有2個以上的gcc版本存在,系統自帶的版本是低版本的;第二種是在手動編譯安裝gcc成功後把低版本的gcc解除安裝了。詳細參見本人在安裝NVIDIA驅動時碰到的gcc版本切換問題