之前做了一些关于mongodb replication的一些调研,主要集中在开源软件Tungsten上。这个开源软件是用java写的,和mongo的交互也就用的java。可是真的要用起来,发现我们需要CPP版的mongo操作,于是就需要重新搞一套。到官网查了一下,发现提供的cpp驱动只有linux 64位的,其他的版本只能自己编译。于是就有了现在这篇文章。
我编译mongo cpp 驱动的环境参数
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz
stepping : 3
microcode : 0x19
cpu MHz : 2489.213
cache size : 6144 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 rdtscp constant_tsc up pni monitor ssse3
bogomips : 4978.42
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Ubuntu 12.04.1 LTS \n \l
首先到github上把驱动的源码下载下来,地址:https://github.com/mongodb/mongo-cxx-driver。当然,在checkout之前要先选择branch,我使用的branch,因为我要链接的mongodb的版本是1.8.
下载并安装dependency
1, Boost(>= 1.49) ,这个可以用ubuntu的安装命令找到
sudo apt-get install libboost-all-dev
2. Python(2.x), ubuntu系统默认装的是2.7.
3. SCons, 到 http://www.scons.org/ 下载一个,然后安装一下,README里面写的很清楚了。
4. Git, 这个可有可无,因为源码已经下到了。
所有的依赖准备好之后,就可着手编译源码了。
切到源码路径,运行
sudo scons --prefix=/usr/local/ install
然后切到/usr/local下面就能找到编译好的库文件和头文件了。