標籤:
Windows下安裝mongodb的C語言程式驅動必須藉助交叉編譯軟體CMake,但是官網上的文檔對於一些細節交代的非常不清楚,昨天弄了半天,總算成功安裝了,步驟如下:
1、下載mongodb 將mongo-c-driver-1.1.4.zip原始碼解壓到d:根目錄下(此目錄路徑可根據需要選定)。
2、下載libbson庫,https://github.com/mongodb/libbson/releases/download/1.1.6/libbson-1.1.6.tar.gz,將其解壓。將解壓後的libbson-1.1.6檔案夾改名為“libbson”,替換D:\mongo-c-driver-1.1.4\src\libbson目錄(mongo-c-driver內建的原目錄為空白目錄)。3、當需要ssl功能時,下載windows下的OpenSSL相應版本( http://slproweb.com/products/Win32OpenSSL.html ),如OpenSSL 1.0.1m,安裝在C:\OpenSSL-Win64路徑下。增加windows系統的環境變數“OPENSSL_ROOT_DIR”,值為“C:\OpenSSL-Win64”。4、安裝CMake軟體( http://www.cmake.org ),安裝版本3.2.2。官網文檔推薦使用Visual 2010,試著用2013編譯。5、用windows命令列的方式安裝,因此先在環境變數PATH中增加編譯器“msbuild.exe”的路徑:“C:\Program Files (x86)\MSBuild\12.0\Bin”。因為mongo-c-driver庫的安裝需要bson庫的支援,所以按先編譯bson庫,再編譯mongo-c-driver的順序進行。依次做如下操作:
1)進入bson庫目錄,該目錄下有編譯libbson的指令檔CMakeLists.txt:
cd d:\mongo-c-driver-1.1.4\src\libbson
2)用CMake產生Visual Studio 2013的編譯環境,指定D:\mongo-c-driver目錄為bson庫最後的輸出安裝目錄。
cmake -G "Visual Studio 12 Win64" "-DCMAKE_INSTALL_PREFIX=D:\mongo-c-driver"
此時在d:\mongo-c-driver-1.1.4\src\libbson目錄下將產生libbson.sln、ALL_BUILD.vcxproj、INSTALL.vcxproj等等編譯檔案。
3)注意,直接編譯 ALL_BUILD.vcxproj 會出錯,原因是其中的一個工程test-libbson.vcxproj由於字元集的原因無法編譯成功。用vs2013開啟libbson.sln,在全部工程中刪去test-libbson工程,ALL_BUILD.vcxproj檔案會相應的刪去該項,儲存並退出。
4)編譯bson庫:
msbuild.exe ALL_BUILD.vcxproj
5)安裝bson庫:
msbuild.exe INSTALL.vcxproj
此時D:\mongo-c-driver目錄下已產生bson相應的bin、lib、include庫檔案。bson庫編譯工作完成。
6)用同樣的方法繼續安裝mongo-c-driver,同樣也安裝在D:\mongo-c-driver下:
cd d:\mongo-c-driver-1.1.4
cmake -G "Visual Studio 12 Win64" "-DCMAKE_INSTALL_PREFIX=d:\mongo-c-driver" "-DBSON_ROOT_DIR=d:\mongo-c-driver"
(上面這句表示編譯mongo-c-driver的輸出位置和需要的環境變數“BSON_ROOT_DIR”值都為“d:\mongo-c-driver”)
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
7)檢查d:\mongo-c-driver目錄,lib檔案夾中包含了bson-1.0.lib和mongoc-1.0.lib檔案,bin檔案夾下是相應的動態庫,include下是標頭檔。
整個編譯工作完成。
windows下使用Cmake和VC 2013安裝mongodb C driver