Windows下全新编译MongoDB2.04

1、下载最新版本的MongoDB2.04,http://www.mongodb.org/display/DOCS/Downloads。

2、解压源码,从VS2010编译MongoDB服务端(不含客户端)。编译之前需要准备多个依赖库。
Boost 1.41.0 Visual Studio 2010 Binary,http://downloads.mongodb.org/misc/boost_1_41_0_binary_vs10beta2.zipx
为了编译方便,将boost解压到c盘下的boost中。
Building js.lib,https://nodeload.github.com/dwight/vc2010_js/zipball/master

3、解压源码,从SCons编译(含客户端)。
当前的编译不能直接生成client开发库,需借助scons来完成。安装SCons需要在python下进行,可以从这里下载http://www.python.org/download/releases/2.7.2/。
官网建议安装http://sourceforge.net/projects/pywin32/files/pywin32/Build216/pywin32-216.win32-py2.7.exe/download
安装SCons,http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.win32.exe/download
安装完成后,配置python脚本路径,将C:\Python27\Scripts添加到PATH中。
在提示符下执行下列命令:
scons                   // build mongod
scons ---release mongoclient.lib   // build C++ client driver library
scons --debug --release core               // build all end user components

4、由于MongoDB是内存映射数据库,存在2GB内存限制问题,在X64位下部署更合理。在X64下从新编译即可。
_________________________
今天远程连接时发现问题,mongoclient.lib在链接时出现了不少错误,LNK:2038,2005等,去掉release后,通过,即scons mongoclient.lib。还没想明白,哪位知道告诉一声。
_________________________
MongoVUE是一个商业版Mongdb客户端,存在15天使用限制,将下列键删除,可继续试用,很不错。
[HKEY_CURRENT_USER\Software\Classes\CLSID\{B1159E65-821C3-21C5-CE21-34A484D54444}\4FF78130]
______________________
将mongodb配置为服务方式
mongod --logpath D:\mongodb\mongodb-win32-i386-2.0.4\log\MongoDB.log --logappend --dbpath D:\mongodb\mongodb-win32-i386-2.0.4\data --directoryperdb --serviceName MongoDB --install
______________________
由于应用程序的Debug版本与Release版本在性能上存在巨大差异,程序性能的评测应全部至于非调试状态下进行,之前真是吃了这方面的苦头了。今天发现Scons文件中的编译选项为:
   if release:
        env.Append( CPPDEFINES=[ "NDEBUG" ] )
        env.Append( CPPFLAGS= " /O2 /Gy " )
        env.Append( CPPFLAGS= " /MT /Zi /TP /errorReport:none " )
        # TODO: this has caused some linking problems :
        # /GL whole program optimization
        # /LTCG link time code generation
        env.Append( CPPFLAGS= " /GL " ) 
        env.Append( LINKFLAGS=" /LTCG " )
即:在Release环境下,mongoclient.lib文件依赖多线程,而非MTd,这是之前一致存在的程序连接重定义错误的根源。现在可以使用Release版的mongoclient.lib了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值