Jak vytvořit MongoDB C++ ovladač
Toto řešení uspělo na stroji s následujícími charakteristikami:
- Windows XP SP3 32bitová verze
- Visual Studio Express 2010 (VC 10)
Jako pracovní adresář jsem použil D:\MongoDBcplusplusClient (nainstaloval jsem tam všechny předpoklady).
Proces:
- Krok 1
Stáhněte si ovladač MongoDB C++:
https://github.com/mongodb/mongo-cxx-driver
Můžete vytvořit klon pomocí Git nebo si jej stáhnout jako soubor .zip (já jsem udělal druhý). Získáte soubor jako mongo-cxx-driver-legacy.zip. Rozbalte jej do složky mongo-cxx-driver-legacy ve vašem pracovním adresáři.
- Krok 2
Stáhněte si předpřipravené binární soubory systému Windows Boost. POZOR!!! Měli byste použít konkrétní verzi Boost. V mém případě verze 1.52 udělala trik. Můžete si jej stáhnout zde:
http://boost.teeks99.com/
Stáhl jsem si samorozbalovací exe boost_1_52_0-vc32-bin.exe. Vložte jej do pracovního adresáře a spusťte. Vytvoří složku (něco jako lib32), která bude obsahovat binární soubory boost (soubory .lib a .dll)
- Krok 3
Stáhněte si zdrojový kód Boost (soubory .h). Samozřejmě by měly být ze stejné verze jako v kroku 2. Stáhl jsem je odtud:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Získáte soubor boost_1_52_0.zip, který můžete rozbalit ve složce boost_1_52_0.
- Krok 4
Stáhněte si Python. V tomto příkladu jsem si stáhl verzi 2.7.9 a konkrétně instalační program Windows x86 MSI odtud:
https://www.python.org/downloads/release/python-279/
- Krok 5
Stáhněte si Scons zde:
http://www.scons.org/download.php
Stáhl jsem si instalační program Windows (scons-2.3.4-setup.exe) a nainstaloval Scons do adresáře Python (v mém případě C:\Python27).
- Krok 6
Stáhněte si msinttypes odtud:
https://code.google.com/p/msinttypes/
(Tyto hlavičkové soubory byste měli zahrnout do projektu, který používá ovladač)
- Krok 7
Přejděte na Start->Spustit… a do pole Spustit napište cmd. V otevřeném okně příkazového řádku přejděte do složky, ze které jste v kroku 1 extrahovali ovladač mongo. V mém případě jsem to udělal:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Krok 8
Sestavte ovladač pomocí Scons. Do adresáře, do kterého jste se dostali v kroku 7, napište:
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=instalace xpsp3
a stiskněte Enter.
--předpona příznak určuje cílový adresář, ve kterém bude vytvořen soubor .lib ovladače, --cpppath určuje složku, ve které jsou umístěny hlavičkové soubory Boost, a --libpath cestu k souborům .lib Boost. Samozřejmě byste měli změnit cestu k vaší. Soubor s názvem libmongoclient-s.lib bude vytvořen na --prefix/lib path .Pokud chcete sestavit ovladač s povoleným laděním, měli byste použít následující příkaz:
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=při instalaci
Soubor s názvem libmongoclient-sgd.lib bude vytvořen na --prefix/lib cesta.
- Krok 9
V Průzkumníku Windows přejděte do složky, ve které je nainstalován ovladač MongoDB C++, přejděte do podsložky lib (v mém případě to bylo D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) a přejmenujte soubor libmongoclient-s.lib na mongoclient.lib a libmongoclient-sgd.lib na mongoclient-gd.lib .
- Krok 10
Otevřete Visual Studio 2010 Express a otevřete projekt, ve kterém chcete použít ovladač MongoDB C++. Měli byste určit závislosti. Klikněte pravým tlačítkem na název projektu v průzkumníku řešení (levý sloupec) a klikněte na Vlastnosti. Přejděte do C/C++ → Obecné a v části Další zahrnout adresáře přidejte:
a) Adresář souborů záhlaví Boost (v mém případě D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) Adresář záhlaví souborů ovladače MongoDB C++ (v mém případě D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Adresář hlavičkových souborů typů Cstdint (v mém případě:\MongoDBcplusplusClient\msinttypes-r26)
- Krok 11
Přejděte na Linker → Obecné a v části Další adresáře knihoven přidejte:
a) Boost adresář souborů .lib (v mém případě D:\MongoDBcplusplusClient\lib32)
b) Adresář souborů .lib ovladače MongoDB C++ (v mém případě D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Po těchto krocích bude projekt, který používá ovladač, úspěšně vytvořen v konfiguraci vydání i ladění.