日期:2014-05-16  浏览次数:20395 次

Linux下编译mongodb以及C++客户端驱动

想在Linux下编译一下mongo和它的C++驱动,网上一堆教程,官方一堆文档,实现起来依旧困难重重。我就很纳闷了,本来mongodb就是C++写的,为什么不直接提供出驱动,而java,C#之类的,倒是直接提供了jar包和dll文件。今天终于编译成功,赶紧记录下来。

Linux版本:CentOS 5.4

C++驱动版本:mongo-cxx-driver-v2.2

Mongodb版本:mongodb-src-r2.2.6

Python版本:Python-2.7.5

scons版本:scons-src-2.3.0

boost版本:boost_1_49_0


步骤:

1. 升级boost

centos5.4自带了boost,但版本过老,需要进行升级:
rpm -qa boost* # 先查一下安装的版本
rpm -e xxxx # 卸载之

去boost官网下载boost库,推荐1.49版本,注意,作者第一次下载了1.54版本的boost,后来在编译C++驱动的时候,死活编译不过去,出现error: #error Compiling Filesystem version 3 file with BOOST_FILESYSTEM_VERSION defined != 3的错误,Boost官网http://www.boost.org/doc/libs/1_51_0/libs/filesystem/doc/index.htm有这么一段话:This is Version 3 of the Filesystem library. Version 2 is not longer supported. 1.49.0 was the last release of Boost to supply Version 2。
最后又重新安装的1.49版本的。


下载boost_1_49_0.tar.bz2
解压后,执行
$ cd boost_1_49_0
$ ./bootstrap.sh

$ ./b2

$ sudo ./b2 install

时间有点长,可以先出去抽个烟,上个厕所。

2.升级python

参考:http://www.netingcn.com/centos-python-upgrade.html

http://running.iteye.com/blog/1122370

3.安装scons

下载scons-2.3.0-1.noarch.rpm ( http://www.scons.org/download.php )

安装: