安装配置ttserver(Tokyo Cabinet,Tokyo Tyrant) ttserver.c:611错误解决办法

最近在尝试安装ttserver来评估一下用于某个SCADA中可行性,在CentOS 6.2下安装Tokyo Tyrant时使用下列命令时出现一个错误:

> yum install tokyocabinet tokyocabinet-devel

wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz

tar xvzf tokyotyrant-1.1.41.tar.gz

cd tokyotyrant-1.1.41

make

报错:tokyotyrant-1.1.41/ttserver.c:611: undefined reference to tcadbsetskelmulti。说是这个函数没有定义过,有人说直接把代码注释掉,这样做不太好。经过查询原来版本兼容性问题。

tcadbsetskelmulti 这个函数是Tokyo Cabinet 1.4.35版本中引入的新函数,这一点可以冲tokyocabinet的ChangeLog中发现,同时加入的新函数还有tcadbmulnew, tcadbmuldel,setskeltran。所以为了使用TokyoTyrant 1.1.41必须使用1.4.35版本及之后的Tokyo Cabinet,那么就换最新版本的Tokyo Cabinet吧。

> yum install gcc-c++ zlib-devel bzip2-devel

wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.47.tar.gz

tar xvzf tokyocabinet-1.4.47.tar.gz

cd tokyocabinet-1.4.47

./configure –enable-profile

make

make install

cd

wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz

tar xvzf tokyotyrant-1.1.41.tar.gz

cd tokyotyrant-1.1.41

./configure

make

make install

果然顺利安装ttserver