使用VS2010編譯MongoDB C++驅動詳解

來源:互聯網
上載者:User

標籤:

最近為瞭解決IM訊息記錄的高速度寫入、多文件類型支援的需求,決定使用MongoDB來解決。

考慮到MongoDB對VS版本要求較高,與我現有的VS版本不相容,在leveldb、ssdb、redis、hbase等NoSQL中轉了一圈,最後還是選擇了MongoDB,應了那句話:沒有最好的,只有最合適的。

MongoDB由於使用了C++的新特性,官方建議使用VS2013來編譯,最低要求VS2010。

MongoDB C++驅動編譯過程較為複雜,官方也沒有提供編譯好的驅動包,網上的資料編譯版本都比較老了,特此整理最新的MongoDB C++驅動編譯方法。

使用VS2010編譯MongoDB C++驅動詳解:

1、下載python 2.7.9安裝程式(不要使用3.X的版本), 使用32位,因為scons只有32位安裝包可用;

:https://www.python.org/downloads/ 選擇:Windows x86 MSI installer

2、下載scons 2.3.4,MongoDB的驅動是用scons構建的,安裝後會自動安裝到python的指令碼目錄裡;

:http://www.scons.org/

3、其他教程裡有寫Python27\Scripts寫入PATH這一步,python 2.7.9應該會自動寫入,可省略;

4、MongoDB C++驅動依賴Boost庫(1.49及以上版本),可以直接下載編譯好的Boost檔案直接安裝,省去了自己編譯,節約半天時間;

:http://sourceforge.net/projects/boost/files/boost-binaries/ 選擇:boost_1_57_0-msvc-10.0-32

注意32位和64位區別,需編譯64位驅動的下載64位的Boost庫。

5、下載MongoDB C++驅動原始碼,選擇;

:https://github.com/mongodb/mongo-cxx-driver/wiki/Download%20and%20Compile 

推薦下載26compat穩定版分支,解壓到本地。

6、命令列下cd進驅動目錄,使用以下命令編譯;

D:\mongo-cxx-driver-26compat>scons --dbg=on --32 --dynamic-windows --sharedclient --cpppath=D:\boost_1_57_0 --libpath=D:\boost_1_57_0\lib32-msvc-10.0 --use-system-boost

這裡編譯的是32位動態庫,編譯成功後會生出mongoclient.dll。

cpppath指定boost標頭檔目錄;

libpath指定boost庫目錄;

其他命令可以參考官網:https://github.com/mongodb/mongo-cxx-driver/wiki/Download%20and%20Compile

編譯MongoDB C++驅動遇到的問題:

1、官網推薦編譯時間使用install選項,按說明的意思是編譯後將驅動和標頭檔安裝到指定目錄,不過使用時會報boost庫找不到的錯誤;

2、使用編譯好的驅動時提示error_codes.h和error_codes.cpp檔案找不到,這兩個檔案在MongoDB C++驅動源碼下,拷貝過去即可。

以上是編譯MongoDB C++驅動快速的方法,大家在編譯時間可以參照。

今天聽說MongoDB 3.0即將推出,寫入速度在原有基礎上提升6-7倍,效能很強悍~

 

記錄,為更好的自己!

使用VS2010編譯MongoDB C++驅動詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.