Come creare il driver C++ MongoDB
Questa soluzione è riuscita su una macchina con le seguenti caratteristiche:
- Windows XP SP3 a 32 bit
- Visual Studio Express 2010 (VC 10)
Ho usato D:\MongoDBcplusplusClient come directory di lavoro (ho installato lì tutti i prerequisiti).
Processo:
- Passaggio 1
Scarica il driver MongoDB C++:
https://github.com/mongodb/mongo-cxx-driver
Puoi creare un clone usando Git o scaricarlo come file .zip (ho fatto il secondo). Otterrai un file come mongo-cxx-driver-legacy.zip. Estrailo nella cartella mongo-cxx-driver-legacy all'interno della tua directory di lavoro.
- Passaggio 2
Scarica i binari precompilati di Windows Boost. ATTENZIONE!!! Dovresti usare una versione specifica di Boost. Nel mio caso la versione 1.52 ha funzionato. Puoi scaricarlo da qui:
http://boost.teeks99.com/
Ho scaricato l'exe autoestraente boost_1_52_0-vc32-bin.exe. Mettilo nella tua directory di lavoro ed eseguilo. Creerà una cartella (qualcosa come lib32) che conterrà i file binari boost (file .lib e .dll)
- Passaggio 3
Scarica il codice sorgente Boost (file .h). Ovviamente questi dovrebbero essere della stessa versione del passaggio 2. Li ho scaricati da qui:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Otterrai un file boost_1_52_0.zip che puoi estrarre nella cartella boost_1_52_0.
- Passaggio 4
Scarica Python. In questo esempio ho scaricato la versione 2.7.9 e in particolare il programma di installazione MSI di Windows x86 da qui:
https://www.python.org/downloads/release/python-279/
- Passaggio 5
Scarica Scons da qui:
http://www.scons.org/download.php
Ho scaricato il programma di installazione di Windows (scons-2.3.4-setup.exe) e ho installato Scons nella directory Python (nel mio caso C:\Python27).
- Passaggio 6
Scarica msinttypes da qui:
https://code.google.com/p/msinttypes/
(Dovresti includere questi file di intestazione nel progetto che utilizza il driver)
- Passaggio 7
Vai su Start->Esegui... e nella casella Esegui scrivi cmd. Nella finestra del prompt dei comandi aperta, vai alla cartella in cui hai estratto il driver mongo al passaggio 1. Nel mio caso l'ho fatto:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Passaggio 8
Costruisci il driver usando Scons. Nella directory che hai navigato al passaggio 7 scrivi:
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 installazione
e premi Invio.
Il --prefisso flag specifica la directory di destinazione in cui verrà creato il file .lib del driver, --cpppath specifica la cartella in cui si trovano i file di intestazione Boost e il --libpath il percorso dei file Boost .lib. Ovviamente dovresti cambiare il percorso al tuo. Un file denominato libmongoclient-s.lib verrà creato nel --prefix/lib percorso .Se vuoi creare il driver con il debug abilitato dovresti usare il seguente comando:
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=all'installazione
Un file denominato libmongoclient-sgd.lib verrà creato in --prefix/lib percorso.
- Passaggio 9
In Esplora risorse, vai alla cartella in cui è installato il driver MongoDB C++, vai nella sottocartella lib (nel mio caso era D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) e rinomina il file libmongoclient-s.lib su mongoclient.lib e libmongoclient-sgd.lib a mongoclient-gd.lib .
- Passaggio 10
Apri Visual Studio 2010 Express e apri il progetto in cui vuoi usare il driver MongoDB C++. Dovresti specificare le dipendenze. Fai clic con il pulsante destro del mouse sul nome del progetto in Esplora soluzioni (colonna a sinistra) e premi Proprietà. Vai a C/C++ → Generale e in Directory di inclusione aggiuntive aggiungi:
a) Aumenta la directory dei file di intestazione (nel mio caso D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) Directory dei file di intestazione del driver C++ di MongoDB (nel mio caso D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Directory dei file di intestazione dei tipi Cstdint (nel mio caso:\MongoDBcplusplusClient\msinttypes-r26 )
- Passaggio 11
Vai su Linker → Generale e in Directory aggiuntive della libreria aggiungi:
a) Aumenta la directory dei file .lib (nel mio caso D:\MongoDBcplusplusClient\lib32)
b) Directory dei file .lib del driver MongoDB C++ (nel mio caso D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Dopo questi passaggi il progetto che utilizza il driver verrà compilato correttamente sia nelle configurazioni di rilascio che di debug.