Jak zbudować sterownik MongoDB C++
To rozwiązanie powiodło się na maszynie o następujących cechach:
- Windows XP SP3 32-bitowy
- Visual Studio Express 2010 (VC 10)
Użyłem D:\MongoDBcplusplusClient jako katalogu roboczego (zainstalowałem tam wszystkie wymagania wstępne).
Proces:
- Krok 1
Pobierz sterownik MongoDB C++:
https://github.com/mongodb/mongo-cxx-driver
Możesz zrobić klona za pomocą Gita lub pobrać go jako plik .zip (ja zrobiłem drugi). Otrzymasz plik taki jak mongo-cxx-driver-legacy.zip. Wypakuj go do folderu mongo-cxx-driver-legacy w swoim katalogu roboczym.
- Krok 2
Pobierz predefiniowane pliki binarne systemu Windows Boost. UWAGA!!! Powinieneś użyć określonej wersji Boost. W moim przypadku poradziła sobie wersja 1.52. Możesz go pobrać stąd:
http://boost.teeks99.com/
Pobrałem samorozpakowujący się plik exe boost_1_52_0-vc32-bin.exe. Umieść go w swoim katalogu roboczym i uruchom. Utworzy folder (coś w rodzaju lib32), który będzie zawierał pliki binarne boost (pliki .lib i .dll)
- Krok 3
Pobierz kod źródłowy Boost (pliki .h). Oczywiście powinny pochodzić z tej samej wersji, co w kroku 2. Pobrałem je stąd:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Otrzymasz plik boost_1_52_0.zip, który możesz rozpakować w folderze boost_1_52_0.
- Krok 4
Pobierz Pythona. W tym przykładzie pobrałem wersję 2.7.9, a konkretnie instalator Windows x86 MSI stąd:
https://www.python.org/downloads/release/python-279/
- Krok 5
Pobierz Scons stąd:
http://www.scons.org/download.php
Pobrałem instalator Windows (scons-2.3.4-setup.exe) i zainstalowałem Scons w katalogu Pythona (w moim przypadku C:\Python27).
- Krok 6
Pobierz msinttypes stąd:
https://code.google.com/p/msinttypes/
(Powinieneś dołączyć te pliki nagłówkowe do projektu, który używa sterownika)
- Krok 7
Przejdź do Start->Uruchom… iw polu Uruchom wpisz cmd. W otwartym oknie wiersza polecenia przejdź do folderu, w którym wyodrębniłeś sterownik mongo w kroku 1. W moim przypadku zrobiłem:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Krok 8
Zbuduj sterownik za pomocą Scons. W katalogu, do którego nawigowałeś w kroku 7, napisz:
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 instalacja
i naciśnij Enter.
--przedrostek flaga określa katalog docelowy, w którym zostanie utworzony plik .lib sterownika, --cpppath określa folder, w którym znajdują się pliki nagłówkowe Boost oraz --libpath ścieżka do plików Boost .lib. Oczywiście powinieneś zmienić ścieżkę na swoją. Plik o nazwie libmongoclient-s.lib zostanie utworzony w ścieżce --prefix/lib .Jeśli chcesz zbudować sterownik z włączonym debugowaniem, użyj następującego polecenia:
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-wersja-min=xpsp3
--dbg=przy instalacji
Plik o nazwie libmongoclient-sgd.lib zostanie utworzony w --prefix/lib ścieżka.
- Krok 9
W Eksploratorze Windows przejdź do folderu, w którym zainstalowany jest sterownik MongoDB C++, przejdź do biblioteki podfolderów (w moim przypadku był to D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) i zmień nazwę pliku libmongoclient-s.lib do mongoclient.lib i libmongoclient-sgd.lib do mongoclient-gd.lib .
- Krok 10
Otwórz program Visual Studio 2010 Express i otwórz projekt, w którym chcesz użyć sterownika MongoDB C++. Powinieneś określić zależności. Kliknij prawym przyciskiem myszy nazwę projektu w eksploratorze rozwiązań (lewa kolumna) i naciśnij Właściwości. Przejdź do C/C++ → Ogólne i w Dodatkowe katalogi dołączania dodaj:
a) Katalog plików nagłówkowych Boost (w moim przypadku D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
b) Katalog plików nagłówkowych sterownika MongoDB C++ (w moim przypadkuD:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
c) Katalog plików nagłówkowych Cstdint typów (w moim przypadku:\MongoDBcplusplusClient\msinttypes-r26 )
- Krok 11
Przejdź do Linker → Ogólne i w Dodatkowe katalogi biblioteczne dodaj:
a) Wzmocnij katalog plików .lib (w moim przypadku D:\MongoDBcplusplusClient\lib32)
b) Katalog plików sterownika MongoDB C++ .lib (w moim przypadku D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
Po tych krokach projekt korzystający ze sterownika zostanie pomyślnie zbudowany zarówno w konfiguracji wydania, jak i debugowania.