Ubuntu安裝設置低版本的gcc


在安裝Tair的過程中,執行到./configure后出錯:

configure: WARNING: ext/hash_map: present but cannot be compiled
configure: WARNING: ext/hash_map: check for missing prerequisite headers?
configure: WARNING: ext/hash_map: see the Autoconf documentation
configure: WARNING: ext/hash_map: section "Present But Cannot Be Compiled"
configure: WARNING: ext/hash_map: proceeding with the compiler's result
configure: WARNING: ## --------------------------------- ##
configure: WARNING: ## Report this to zongdai@taobao.com ##
configure: WARNING: ## --------------------------------- ##
checking for ext/hash_map... no
configure: error: in `/home/ha/tair':
configure: error: hash_map not found
See `config.log' for more details

此時,在確保安裝了c++標准庫。可使用yum install gcc-c++安裝。

如果單獨安裝gcc以及g++比較麻煩,幸運的是,為了能夠編譯Ubuntu的內核,Ubuntu提供了一個build-essential軟件包。

  查看該軟件包的依賴關系,可以看到以下內容:
 
$ apt-cache depends build-essential  build-essential  
依賴: libc6-dev  
依賴:  libc6-dev  
依賴: gcc  
依賴: g++  
依賴: make  
依賴: dpkg-dev
  也就是說,安裝了該軟件包,編譯c/c++所需要的軟件包也都會被安裝。因此如果想在Ubuntu中編譯c/c++程序,只需要安裝該軟件包就可以了。
  安裝方法如下:
  $sudo apt-get install build-essential

 

安裝了c++標准庫后,應使用gcc-4.4.7版本,tfs與tair在該版本下可編譯通過,淘寶默認的gcc為4.4.7版本。版本過高對語法檢查過嚴,不能編譯通過。
我用的是Ubuntu的15.04版本的,gcc版本是4.9.2.使用# gcc -v命令可查看gcc版本號:

gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13)

$sudo apt-get install gcc-4.4
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40  (這里“40” 是優先級,值越大優先級越高)
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 (本機自帶的設置為60更高的優先級)
 
選擇系統默認的gcc
$sudo update-alternatives --config gcc
 

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.9 60 auto mode
1 /usr/bin/gcc-4.4 40 manual mode
2 /usr/bin/gcc-4.9 60 manual mode

默認系統用最高優先級的, 這里我們選擇1就可以了
 
接下來,g++ 同樣的步驟操作
$sudo apt-get install g++-4.4
$sudo apt-get install g++-4.4-multilib
 
$sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40
$sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 60
$sudo update-alternatives --config g++
  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-4.6   60        auto mode
  1            /usr/bin/g++-4.4   40        manual mode
  2            /usr/bin/g++-4.6   60        manual mode
選擇1.
 
如果想改為高版本的隨時用update-alternatives --config 命令切換!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM