Hoe MongoDB C++-stuurprogramma te bouwen
Deze oplossing is geslaagd op een machine met de volgende kenmerken:
- Windows XP SP3 32-bit
- Visual Studio Express 2010 (VC 10)
Ik gebruikte D:\MongoDBcplusplusClient als werkmap (ik heb daar alle vereisten geïnstalleerd).
Proces:
- Stap 1
MongoDB C++-stuurprogramma downloaden:
https://github.com/mongodb/mongo-cxx-driver
Je kunt een kloon maken met Git of het downloaden als een .zip-bestand (ik deed de tweede). Je krijgt een bestand zoals mongo-cxx-driver-legacy.zip. Pak het uit in de map mongo-cxx-driver-legacy in je werkmap.
- Stap 2
Download Boost vooraf gebouwde Windows-binaire bestanden. LET OP!!! U moet een specifieke versie van Boost gebruiken. In mijn geval deed versie 1.52 het. Je kunt het hier downloaden:
http://boost.teeks99.com/
Ik heb de zelfuitpakkende exe boost_1_52_0-vc32-bin.exe gedownload. Zet het in je werkmap en voer het uit. Het zal een map maken (zoiets als lib32) die de boost-binaire bestanden (.lib- en .dll-bestanden) zal bevatten
- Stap 3
Download Boost-broncode (.h-bestanden). Deze moeten natuurlijk van dezelfde versie zijn als in stap 2. Ik heb ze hier gedownload:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Je krijgt een bestand boost_1_52_0.zip dat je kunt uitpakken in de map boost_1_52_0.
- Stap 4
Python downloaden. In dit voorbeeld heb ik versie 2.7.9 en specifiek het Windows x86 MSI-installatieprogramma hier gedownload:
https://www.python.org/downloads/release/python-279/
- Stap 5
Download Scons van hier:
http://www.scons.org/download.php
Ik heb het Windows-installatieprogramma gedownload (scons-2.3.4-setup.exe) en Scons geïnstalleerd in de Python-directory (in mijn geval C:\Python27).
- Stap 6
Download msinttypes van hier:
https://code.google.com/p/msinttypes/
(U moet deze header-bestanden opnemen in het project dat de driver gebruikt)
- Stap 7
Ga naar Start->Uitvoeren... en schrijf in het vak Uitvoeren cmd. Navigeer in het geopende opdrachtpromptvenster naar de map waarin u het mongo-stuurprogramma hebt uitgepakt bij stap 1. In mijn geval deed ik dat:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Stap 8
Bouw de driver met Scons. In de map waarin u bij stap 7 hebt genavigeerd, schrijft u:
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-installatie
en druk op Enter.
Het --voorvoegsel vlag specificeert de doelmap waarin het .lib-bestand van het stuurprogramma wordt gemaakt, --cpppath specificeert de map waarin de Boost-headerbestanden zich bevinden en het --libpath het pad naar Boost .lib-bestanden. Natuurlijk moet je het pad naar het jouwe veranderen. Een bestand met de naam libmongoclient-s.lib wordt aangemaakt op het --prefix/lib pad .Als u het stuurprogramma wilt bouwen met foutopsporing ingeschakeld, moet u het volgende commando gebruiken:
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=op installatie
Een bestand met de naam libmongoclient-sgd.lib wordt aangemaakt op de --prefix/lib pad.
- Stap 9
Navigeer in Windows Verkenner naar de map waarin het MongoDB C++-stuurprogramma is geïnstalleerd, ga naar de submap lib (in mijn geval was dit D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) en hernoem het bestand libmongoclient-s.lib naar mongoclient.lib en de libmongoclient-sgd.lib naar mongoclient-gd.lib .
- Stap 10
Open Visual Studio 2010 Express en open het project waarbij u de MongoDB C++ driver wilt gebruiken. U moet de afhankelijkheden specificeren. Klik met de rechtermuisknop op de naam van het project in de oplossingsverkenner (linkerkolom) en klik op Eigenschappen. Ga naar C/C++ → Algemeen en voeg bij Extra mappen opnemen toe:
a) Boost header bestanden directory (in mijn geval D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) MongoDB C++ driver header bestanden directory (in mijn geval D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Cstdint typt header-bestanden directory (in mijn geval:\MongoDBcplusplusClient\msinttypes-r26 )
- Stap 11
Ga naar Linker → Algemeen en voeg bij Extra bibliotheekmappen toe:
a) Verhoog de .lib-bestandenmap (in mijn geval D:\MongoDBcplusplusClient\lib32)
b) MongoDB C++ driver .lib bestanden directory (in mijn geval D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Na deze stappen zal het project dat de driver gebruikt succesvol worden gebouwd in zowel release- als debug-configuraties.