标签:
在安装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
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.6 60 auto mode
1 /usr/bin/gcc-4.4 40 manual mode
2 /usr/bin/gcc-4.6 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 命令切换!
Ubuntu安装设置低版本的gcc
标签:
原文地址:http://www.cnblogs.com/wwha/p/5571454.html