Sådan bygger du MongoDB C++ driver
Denne løsning lykkedes på en maskine med følgende egenskaber:
- Windows XP SP3 32-bit
- Visual Studio Express 2010 (VC 10)
Jeg brugte D:\MongoDBcplusplusClient som en arbejdsmappe (jeg installerede alle forudsætningerne der).
Proces:
- Trin 1
Download MongoDB C++ driver:
https://github.com/mongodb/mongo-cxx-driver
Du kan lave en klon ved hjælp af Git eller downloade den som en .zip-fil (jeg gjorde den anden). Du får en fil som mongo-cxx-driver-legacy.zip. Udpak den til mappen mongo-cxx-driver-legacy inde i din arbejdsmappe.
- Trin 2
Hent Boost forudbyggede binære filer til Windows. OBS!!! Du bør bruge en specifik version af Boost. I mit tilfælde gjorde version 1.52 tricket. Du kan downloade den her:
http://boost.teeks99.com/
Jeg downloadede boost_1_52_0-vc32-bin.exe selvudpakkende exe. Sæt det i din arbejdsmappe og kør det. Det vil oprette en mappe (noget i stil med lib32), der vil indeholde boost-binære filer (.lib- og .dll-filer)
- Trin 3
Download Boost-kildekoden (.h-filer). Selvfølgelig skal disse være fra samme version som i trin 2. Jeg downloadede dem herfra:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Du får en fil boost_1_52_0.zip, som du kan udpakke i mappen boost_1_52_0.
- Trin 4
Download Python. I dette eksempel downloadede jeg version 2.7.9 og specifikt Windows x86 MSI-installationsprogrammet herfra:
https://www.python.org/downloads/release/python-279/
- Trin 5
Download Scons herfra:
http://www.scons.org/download.php
Jeg downloadede Windows-installationsprogrammet (scons-2.3.4-setup.exe) og installerede Scons i Python-biblioteket (i mit tilfælde C:\Python27).
- Trin 6
Download msinttypes herfra:
https://code.google.com/p/msinttypes/
(Du bør inkludere disse overskriftsfiler til projektet, der bruger driveren)
- Trin 7
Gå til Start->Kør... og skriv cmd i feltet Kør. I det åbnede kommandopromptvindue skal du navigere til den mappe, hvor du udpakkede mongo-driveren i trin 1. I mit tilfælde gjorde jeg:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Trin 8
Byg driveren ved hjælp af Scons. Skriv:
i det bibliotek, du navigerede efter i trin 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
og tryk på Enter.
--præfikset flag angiver den målmappe, hvor driverens .lib-fil vil blive oprettet, --cpppath angiver mappen, hvor Boost-header-filerne er placeret, og --libpath stien til Boost .lib-filer. Selvfølgelig skal du ændre stien til din. En fil med navnet libmongoclient-s.lib vil blive oprettet på --prefix/lib-stien .Hvis du vil bygge driveren med debugging aktiveret, skal du bruge følgende 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=on install
En fil med navnet libmongoclient-sgd.lib vil blive oprettet ved --prefix/lib sti.
- Trin 9
I Windows Stifinder, naviger til den mappe, hvor MongoDB C++ driveren er installeret, gå ind i undermappen lib (i mit tilfælde var dette D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) og omdøb filen libmongoclient-s.lib til mongoclient.lib og libmongoclient-sgd.lib til mongoclient-gd.lib .
- Trin 10
Åbn Visual Studio 2010 Express, og åbn det projekt, hvor du vil bruge MongoDB C++-driveren. Du bør angive afhængighederne. Højreklik på projektets navn i løsningsudforsker (venstre kolonne) og tryk på Egenskaber. Gå til C/C++ → Generelt og på Yderligere Inkluder mapper tilføj:
a) Boost header-filbibliotek (i mit tilfælde D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) MongoDB C++ driver-header-filbibliotek (i mit tilfælde D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Cstdint typer header-filer bibliotek (i mit tilfælde:\MongoDBcplusplusClient\msinttypes-r26)
- Trin 11
Gå til Linker → Generelt og tilføj:
under Yderligere bibliotekskatalogera) Boost .lib filer mappe (i mit tilfælde D:\MongoDBcplusplusClient\lib32)
b) MongoDB C++ driver .lib filer bibliotek (i mit tilfælde D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Efter disse trin vil projektet, der bruger driveren, blive bygget med succes både i udgivelses- og fejlfindingskonfigurationer.