Hur man bygger MongoDB C++-drivrutin
Denna lösning lyckades på en maskin med följande egenskaper:
- Windows XP SP3 32-bitars
- Visual Studio Express 2010 (VC 10)
Jag använde D:\MongoDBcplusplusClient som en arbetskatalog (jag installerade alla förutsättningar där).
Process:
- Steg 1
Ladda ner MongoDB C++-drivrutin:
https://github.com/mongodb/mongo-cxx-driver
Du kan skapa en klon med Git eller ladda ner den som en .zip-fil (jag gjorde den andra). Du kommer att få en fil som mongo-cxx-driver-legacy.zip. Extrahera den till mappen mongo-cxx-driver-legacy i din arbetskatalog.
- Steg 2
Ladda ner Boost förbyggda binärfiler för Windows. OBS!!! Du bör använda en specifik version av Boost. I mitt fall gjorde version 1.52 susen. Du kan ladda ner den härifrån:
http://boost.teeks99.com/
Jag laddade ner boost_1_52_0-vc32-bin.exe självextraherande exe. Lägg den i din arbetskatalog och kör den. Det kommer att skapa en mapp (något liknande lib32) som kommer att innehålla boost-binärfilerna (.lib- och .dll-filer)
- Steg 3
Ladda ner Boost-källkod (.h-filer). Naturligtvis ska dessa vara från samma version som i steg 2. Jag laddade ner dem härifrån:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Du får en fil boost_1_52_0.zip som du kan extrahera i mappen boost_1_52_0.
- Steg 4
Ladda ner Python. I det här exemplet laddade jag ner version 2.7.9 och specifikt installationsprogrammet för Windows x86 MSI härifrån:
https://www.python.org/downloads/release/python-279/
- Steg 5
Ladda ner Scons härifrån:
http://www.scons.org/download.php
Jag laddade ner Windows-installationsprogrammet (scons-2.3.4-setup.exe) och installerade Scons i Python-katalogen (i mitt fall C:\Python27).
- Steg 6
Ladda ner msinttypes härifrån:
https://code.google.com/p/msinttypes/
(Du bör inkludera dessa rubrikfiler till projektet som använder drivrutinen)
- Steg 7
Gå till Start->Kör... och skriv cmd i rutan Kör. I det öppnade kommandotolksfönstret navigerar du till mappen där du extraherade mongo-drivrutinen i steg 1. I mitt fall gjorde jag:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Steg 8
Bygg drivrutinen med Scons. Skriv:
i katalogen du navigerade i steg 7scons
--prefix=D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
--cpppath=D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0
--libpath=D:\MongoDBcplusplusClient\lib32
--win-version-min=xpsp3 installation
och tryck på Retur.
--prefixet flaggan anger målkatalogen där .lib-filen för drivrutinen ska skapas, --cpppath anger mappen där Boost-huvudfilerna finns och --libpath sökvägen till Boost .lib-filer. Självklart ska du ändra vägen till din. En fil med namnet libmongoclient-s.lib kommer att skapas på --prefix/lib sökvägen .Om du vill bygga drivrutinen med felsökning aktiverad bör du använda följande kommando:
scons
--prefix=D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
--cpppath=D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0
--libpath=D:\MongoDBcplusplusClient\lib32
--win-version-min=xpsp3
--dbg=vid installation
En fil med namnet libmongoclient-sgd.lib kommer att skapas vid --prefix/lib sökväg.
- Steg 9
I Windows Explorer, navigera till mappen där MongoDB C++-drivrutinen är installerad, gå in i undermappen lib (i mitt fall var detta D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) och byt namn på filen libmongoclient-s.lib till mongoclient.lib och libmongoclient-sgd.lib till mongoclient-gd.lib .
- Steg 10
Öppna Visual Studio 2010 Express och öppna projektet där du vill använda MongoDB C++-drivrutinen. Du bör ange beroenden. Högerklicka på projektets namn i lösningsutforskaren (vänster kolumn) och tryck på Egenskaper. Gå till C/C++ → Allmänt och på Ytterligare inkludera kataloger lägg till:
a) Boost header-filkatalog (i mitt fall D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) MongoDB C++ drivrutinshuvudfilkatalog (i mitt fall D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Cstdint skriver rubrikfilskatalog (i mitt fall:\MongoDBcplusplusClient\msinttypes-r26)
- Steg 11
Gå till Linker → Allmänt och på Ytterligare bibliotekskataloger lägg till:
a) Boost .lib-filkatalogen (i mitt fall D:\MongoDBcplusplusClient\lib32)
b) MongoDB C++ drivrutin .lib filer katalog (i mitt fall D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Efter dessa steg kommer projektet som använder drivrutinen att byggas framgångsrikt både i release- och felsökningskonfigurationer.