Wie man den MongoDB C++-Treiber erstellt
Diese Lösung war auf einer Maschine mit den folgenden Merkmalen erfolgreich:
- Windows XP SP3 32-Bit
- Visual Studio Express 2010 (VC 10)
Ich habe D:\MongoDBcplusplusClient als Arbeitsverzeichnis verwendet (ich habe dort alle Voraussetzungen installiert).
Prozess:
- Schritt 1
Laden Sie den MongoDB C++-Treiber herunter:
https://github.com/mongodb/mongo-cxx-driver
Sie können einen Klon mit Git erstellen oder ihn als .zip-Datei herunterladen (ich habe die zweite gemacht). Sie erhalten eine Datei wie mongo-cxx-driver-legacy.zip. Extrahieren Sie es in den Ordner mongo-cxx-driver-legacy in Ihrem Arbeitsverzeichnis.
- Schritt 2
Laden Sie die vorgefertigten Windows-Binärdateien von Boost herunter. ACHTUNG!!! Sie sollten eine bestimmte Version von Boost verwenden. In meinem Fall hat die Version 1.52 den Trick getan. Sie können es hier herunterladen:
http://boost.teeks99.com/
Ich habe die selbstextrahierende exe boost_1_52_0-vc32-bin.exe heruntergeladen. Legen Sie es in Ihr Arbeitsverzeichnis und führen Sie es aus. Es wird einen Ordner (etwas wie lib32) erstellen, der die Boost-Binärdateien (.lib- und .dll-Dateien) enthält
- Schritt 3
Laden Sie den Boost-Quellcode (.h-Dateien) herunter. Diese sollten natürlich von der gleichen Version sein wie in Schritt 2. Ich habe sie hier heruntergeladen:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Sie erhalten eine Datei boost_1_52_0.zip, die Sie im Ordner boost_1_52_0 extrahieren können.
- Schritt 4
Python herunterladen. In diesem Beispiel habe ich Version 2.7.9 und speziell das Windows x86 MSI-Installationsprogramm von hier heruntergeladen:
https://www.python.org/downloads/release/python-279/
- Schritt 5
Laden Sie Scons hier herunter:
http://www.scons.org/download.php
Ich habe das Windows-Installationsprogramm (scons-2.3.4-setup.exe) heruntergeladen und Scons im Python-Verzeichnis installiert (in meinem Fall C:\Python27).
- Schritt 6
Laden Sie msinttypes hier herunter:
https://code.google.com/p/msinttypes/
(Sie sollten diese Header-Dateien in das Projekt einfügen, das den Treiber verwendet)
- Schritt 7
Gehen Sie zu Start->Ausführen… und schreiben Sie in das Feld Ausführen cmd. Navigieren Sie im geöffneten Eingabeaufforderungsfenster zu dem Ordner, in dem Sie den Mongo-Treiber in Schritt 1 extrahiert haben. In meinem Fall habe ich Folgendes getan:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Schritt 8
Erstellen Sie den Treiber mit Scons. Schreiben Sie in das Verzeichnis, in dem Sie in Schritt 7 navigiert sind:
Nachteile
--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 installieren
und drücken Sie die Eingabetaste.
Das --Präfix Flag gibt das Zielverzeichnis an, in dem die .lib-Datei des Treibers erstellt wird, --cpppath gibt den Ordner an, in dem sich die Boost-Header-Dateien befinden, und den --libpath den Pfad zu den .lib-Dateien von Boost. Natürlich sollten Sie den Pfad zu Ihrem ändern. Eine Datei namens libmongoclient-s.lib wird unter --prefix/lib path erstellt .Wenn Sie den Treiber mit aktiviertem Debugging erstellen möchten, sollten Sie den folgenden Befehl verwenden:
Nachteile
--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
Eine Datei namens libmongoclient-sgd.lib wird unter --prefix/lib erstellt Pfad.
- Schritt 9
Navigieren Sie im Windows Explorer zu dem Ordner, in dem der MongoDB C++-Treiber installiert ist, gehen Sie in den Unterordner lib (in meinem Fall war dies D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) und Benennen Sie die Datei in libmongoclient-s.lib um zu mongoclient.lib und die libmongoclient-sgd.lib zu mongoclient-gd.lib .
- Schritt 10
Öffnen Sie Visual Studio 2010 Express und öffnen Sie das Projekt, in dem Sie den MongoDB-C++-Treiber verwenden möchten. Sie sollten die Abhängigkeiten angeben. Klicken Sie mit der rechten Maustaste auf den Namen des Projekts im Projektmappen-Explorer (linke Spalte) und klicken Sie auf Eigenschaften. Gehen Sie zu C/C++ → Allgemein und fügen Sie unter Zusätzliche Verzeichnisse hinzufügen:
hinzua) Boost-Header-Dateiverzeichnis (in meinem Fall D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) Header-Dateiverzeichnis des MongoDB-C++-Treibers (in meinem Fall D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Cstdint-Typen Header-Dateiverzeichnis (in meinem Fall:\MongoDBcplusplusClient\msinttypes-r26 )
- Schritt 11
Gehen Sie zu Linker → General und fügen Sie bei Additional Library Directories hinzu:
a) Boost .lib-Dateiverzeichnis (in meinem Fall D:\MongoDBcplusplusClient\lib32)
b) Verzeichnis der .lib-Dateien des MongoDB-C++-Treibers (in meinem Fall D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Nach diesen Schritten wird das Projekt, das den Treiber verwendet, sowohl in der Release- als auch in der Debug-Konfiguration erfolgreich erstellt.