Comment créer le pilote C++ MongoDB
Cette solution a réussi sur une machine présentant les caractéristiques suivantes :
- Windows XP SP3 32 bits
- Visual Studio Express 2010 (VC 10)
J'ai utilisé D:\MongoDBcplusplusClient comme répertoire de travail (j'y ai installé tous les prérequis).
Processus :
- Étape 1
Téléchargez le pilote C++ MongoDB :
https://github.com/mongodb/mongo-cxx-driver
Vous pouvez créer un clone en utilisant Git ou le télécharger sous forme de fichier .zip (j'ai fait le second). Vous obtiendrez un fichier comme mongo-cxx-driver-legacy.zip. Extrayez-le dans le dossier mongo-cxx-driver-legacy dans votre répertoire de travail.
- Étape 2
Téléchargez les binaires Windows prédéfinis Boost. ATTENTION !!! Vous devez utiliser une version spécifique de Boost. Dans mon cas, la version 1.52 a fait l'affaire. Vous pouvez le télécharger ici :
http://boost.teeks99.com/
J'ai téléchargé l'exe auto-extractible boost_1_52_0-vc32-bin.exe. Mettez-le dans votre répertoire de travail et exécutez-le. Il créera un dossier (quelque chose comme lib32) qui contiendra les binaires boost (fichiers .lib et .dll)
- Étape 3
Téléchargez le code source de Boost (fichiers .h). Bien sûr, ceux-ci doivent provenir de la même version qu'à l'étape 2. Je les ai téléchargés à partir d'ici :
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Vous obtiendrez un fichier boost_1_52_0.zip que vous pourrez extraire dans le dossier boost_1_52_0.
- Étape 4
Téléchargez Python. Dans cet exemple, j'ai téléchargé la version 2.7.9 et plus particulièrement le programme d'installation Windows x86 MSI à partir d'ici :
https://www.python.org/downloads/release/python-279/
- Étape 5
Téléchargez Scons à partir d'ici :
http://www.scons.org/download.php
J'ai téléchargé le programme d'installation de Windows (scons-2.3.4-setup.exe) et installé Scons dans le répertoire Python (dans mon cas, C:\Python27).
- Étape 6
Téléchargez msinttypes à partir d'ici :
https://code.google.com/p/msinttypes/
(Vous devez inclure ces fichiers d'en-tête dans le projet qui utilise le pilote)
- Étape 7
Allez dans Démarrer-> Exécuter… et dans la zone Exécuter, écrivez cmd. Dans la fenêtre d'invite de commande ouverte, accédez au dossier dans lequel vous avez extrait le pilote mongo à l'étape 1. Dans mon cas, j'ai fait :cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Étape 8
Construisez le pilote à l'aide de Scons. Dans le répertoire dans lequel vous avez navigué à l'étape 7, écrivez :
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 installer
et appuyez sur Entrée.
Le --préfixe flag spécifie le répertoire cible dans lequel le fichier .lib du pilote sera créé, --cpppath spécifie le dossier dans lequel se trouvent les fichiers d'en-tête Boost et le --libpath le chemin d'accès aux fichiers Boost .lib. Bien sûr, vous devriez changer le chemin vers le vôtre. Un fichier nommé libmongoclient-s.lib sera créé dans le chemin --prefix/lib .Si vous souhaitez créer le pilote avec le débogage activé, vous devez utiliser la commande suivante :
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=à l'installation
Un fichier nommé libmongoclient-sgd.lib sera créé au --prefix/lib chemin.
- Étape 9
Dans l'Explorateur Windows, accédez au dossier dans lequel le pilote MongoDB C++ est installé, accédez au sous-dossier lib (dans mon cas, il s'agissait de D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) et renommer le fichier libmongoclient-s.lib vers mongoclient.lib et le libmongoclient-sgd.lib à mongoclient-gd.lib .
- Étape 10
Ouvrez Visual Studio 2010 Express et ouvrez le projet dans lequel vous souhaitez utiliser le pilote MongoDB C++. Vous devez spécifier les dépendances. Faites un clic droit sur le nom du projet dans l'explorateur de solutions (colonne de gauche) et appuyez sur Propriétés. Allez dans C/C++ → Général et dans les répertoires d'inclusion supplémentaires, ajoutez :
a) Répertoire des fichiers d'en-tête Boost (dans mon cas, D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) Répertoire des fichiers d'en-tête du pilote MongoDB C++ (dans mon cas, D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Répertoire des fichiers d'en-tête des types Cstdint (dans mon cas :\MongoDBcplusplusClient\msinttypes-r26 )
- Étape 11
Allez dans Linker → Général et dans Répertoires de bibliothèques supplémentaires, ajoutez :
a) Booster le répertoire des fichiers .lib (dans mon cas D:\MongoDBcplusplusClient\lib32)
b) Répertoire des fichiers .lib du pilote MongoDB C++ (dans mon cas, D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Après ces étapes, le projet qui utilise le pilote sera construit avec succès à la fois dans les configurations de version et de débogage.