sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik een programma bouwen met behulp van de c++ driver van mongodb?

Hoe MongoDB C++-stuurprogramma te bouwen

Deze oplossing is geslaagd op een machine met de volgende kenmerken:

  1. Windows XP SP3 32-bit
  2. 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.



  1. MongoDB aggregaat vullen ontbrekende dagen

  2. Stop Mongoose met het maken van _id eigenschap voor subdocumentarray-items

  3. Hoe u meerdere lijstwaarden kunt krijgen in één enkele oproep in RedisTemplate van Jedis Client

  4. Gedeeltelijke indexen in mongodb / mangoest