1、mongo-cxx-driver 貼git地址:
https://github.com/mongodb/mongo-cxx-driver 當前最新版本的的是3.1.1。 需求的是cmke 與 VS2015。與我的環境不同,就沒有選擇了。
https://github.com/mongodb/mongo-cxx-driver/releases/tag/legacy-1.1.2 文檔中有專門的說明,所以選擇了這個。文檔點我
2、boost 因為mongoDB其中使用了boost,所以這里得下載boost.話說大名鼎鼎的boost這也是第一次使用。。。 boost官網 由于上面mongodb的文檔中是使用的1.55的庫,為了避免問題所以這邊就與其保持一致的版本。
boost可以下載源碼自己編譯,也可以下載已經編譯完成的。我這邊下載的是編譯完成的,比較方便。已經編譯好的下載地址點我。在sourceforge上選擇適合自己的版本,這邊我選擇的是msvc-10.0-32與msvc-10.0-64的版本。 boost_1_55_0-msvc-10.0-32.exe boost_1_55_0-msvc-10.0-64.exe
3、python-scons 自己常用的就是PY2.7了。沒有試過3的版本。
PS:網上有說需要用32位的Python的安裝scons的,我這邊的是64位的python。也能安裝到64位的scons,使用起來也很好。
4、cmake (高版本mongo) 在編譯高版本的mongdb-cxx-driver的時候,需要這個。cmake官方有安裝版。 這個只是scons的替代品。
1、python安裝就不多說了吧。官網下載對應的版本,然后Pip即可。 直接使用Pip install scons。版本如下
2、boost安裝 如果使用源碼的安裝,可能會麻煩點點。記得使用VS的命令提示符去調用bat.這邊使用的是boost已經編譯完成的。就不存在這些。 如下,是我下載的庫。lib32-msvc-10.0就是32位使用2010編譯的庫。文件夾中包含各種版的lib與dll。
3、mongo-cxx-driver編譯 使用命令行cd到此目錄。我這里是1.1.2版本的。命令行最好使用管理員權限運行。 &path:/mongo-cxx-driver-legacy-1.1.2 我們可以使用scons -h來查看詳細編譯選項。文檔上也有詳細說明 文檔點我 詳細的看下文檔就知道這幾個編譯選項了。 文檔有給出詳細編譯選項。
scons <--64 or --32> --sharedclient --dynamic-windows --PRefix=<install-path> --cpppath=<path-to-boost-headers> --libpath=<path-to-boost-libs> install The following example will build and install the C++ driver, in a PowerShell: scons --64 --sharedclient --dynamic-windows --prefix="%HOME%/mongo-client-install" --cpppath="C:/local/boost_1_55_0/include" --libpath="C:/local/boost_1_55_0/lib64-msvc-12.0" install參數中的 dynamic-windows與sharedclient。前者是生成/MT /MD的選項,后者加上會在生成的文件加上個s,表示靜態與否吧。 prefix 表示的是生成的目錄。我這邊沒有使用。也是正常的,直接導出到了install目錄。 dbg 關鍵字來控制是否為debug版本。 install 這個關鍵字,一定得需要。如果沒有設置prefix,在編譯完成后會生成一個install的目錄,為最終導出的目錄。 還有個msvc–version 對于我這樣電腦上安裝了多個版本VS的時候,這個就可以選擇你需要的版本去對應的編譯。使用方法很簡單,如下加上即可。
msvc--version=10.0 #表示2010msvc--version=12.0 #表示2013我這邊生成的目錄如下。前面為install目錄。后面為install/lib目錄
建個空工程。 需要注意的是把Boost庫的目錄加進去。 &path:/boost 包含 &path:/boost/lib32-msvc-10.0 庫
還有把mongo-cxx-driver生成的install目錄拷貝到工程中,其目錄也加入進去。不細說了。
#include <cstdlib>#include <iostream>#include <winsock2.h> //官方文檔中這個沒,一般VS會報的,加上即可。#include "mongo/client/dbclient.h" // for the drivervoid run() { mongo::DBClientConnection c; c.connect("localhost");}int main() { mongo::client::initialize(); try { run(); std::cout << "connected ok" << std::endl; } catch( const mongo::DBException &e ) { std::cout << "caught " << e.what() << std::endl; } getchar(); return EXIT_SUCCESS;}打印出connected ok就完成了。其他功能可以繼續看上面我帖的文檔地址。
PS:其中可能會報boost庫找不到xx dll的情況。設置了目錄還是不行。挺奇怪。
新聞熱點
疑難解答
圖片精選