Как да създам MongoDB C++ драйвер
Това решение е успешно на машина със следните характеристики:
- Windows XP SP3 32-битов
- Visual Studio Express 2010 (VC 10)
Използвах D:\MongoDBcplusplusClient като работна директория (инсталирах там всички предпоставки).
Процес:
- Стъпка 1
Изтеглете драйвер за MongoDB C++:
https://github.com/mongodb/mongo-cxx-driver
Можете да направите клонинг с Git или да го изтеглите като .zip файл (аз направих втория). Ще получите файл като mongo-cxx-driver-legacy.zip. Разархивирайте го в папката mongo-cxx-driver-legacy във вашата работна директория.
- Стъпка 2
Изтеглете Boost предварително изградени двоични файлове на Windows. ВНИМАНИЕ!!! Трябва да използвате конкретна версия на Boost. В моя случай версия 1.52 свърши работа. Можете да го изтеглите от тук:
http://boost.teeks99.com/
Изтеглих саморазархивиращия се exe boost_1_52_0-vc32-bin.exe. Поставете го във вашата работна директория и го стартирайте. Той ще създаде папка (нещо като lib32), която ще съдържа двоичните файлове за повишаване (.lib и .dll файлове)
- Стъпка 3
Изтеглете изходния код на Boost (.h файлове). Разбира се, те трябва да са от същата версия като в Стъпка 2. Изтеглих ги от тук:
http://sourceforge.net/projects/boost/files/boost/1.52.0/
Ще получите файл boost_1_52_0.zip, който можете да извлечете в папка boost_1_52_0.
- Стъпка 4
Изтеглете Python. В този пример изтеглих версия 2.7.9 и по-специално инсталационната програма на Windows x86 MSI от тук:
https://www.python.org/downloads/release/python-279/
- Стъпка 5
Изтеглете Scons от тук:
http://www.scons.org/download.php
Изтеглих инсталационната програма на Windows (scons-2.3.4-setup.exe) и инсталирах Scons в директорията на Python (в моя случай C:\Python27).
- Стъпка 6
Изтеглете msinttypes от тук:
https://code.google.com/p/msinttypes/
(Трябва да включите тези заглавни файлове към проекта, който използва драйвера)
- Стъпка 7
Отидете на Start->Run... и в полето Run напишете cmd. В отворения прозорец на командния ред отидете до папката, в която сте извлекли mongo драйвер на стъпка 1. В моя случай направих:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
- Стъпка 8
Създайте драйвера с помощта на Scons. В директорията, която сте навигирали в стъпка 7, напишете:
скони
--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 install
и натиснете Enter.
Префиксът -- флагът указва целевата директория, в която ще бъде създаден .lib файлът на драйвера, --cpppath определя папката, в която се намират заглавните файлове Boost и --libpath пътя до Boost .lib файлове. Разбира се, трябва да промените пътя към вашия. Файл с име libmongoclient-s.lib ще бъде създаден в --префикс/библиотечна пътека .Ако искате да изградите драйвера с активирано отстраняване на грешки, трябва да използвате следната команда:
скони
--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=при инсталиране
Файл с име libmongoclient-sgd.lib ще бъде създаден в --prefix/lib път.
- Стъпка 9
В Windows Explorer отидете до папката, в която е инсталиран MongoDB C++ драйвер, отидете в подпапката lib (в моя случай това беше D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) и преименувайте файла libmongoclient-s.lib до mongoclient.lib и libmongoclient-sgd.lib до mongoclient-gd.lib .
- Стъпка 10
Отворете Visual Studio 2010 Express и отворете проекта, в който искате да използвате драйвера MongoDB C++. Трябва да посочите зависимостите. Щракнете с десния бутон върху името на проекта в Solution Explorer (лява колона) и натиснете Properties. Отидете на C/C++ → Общи и в Допълнителни директории за включване добавете:
а) Увеличете директорията на заглавните файлове (в моя случай D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)
б) Директория на заглавните файлове на драйвера MongoDB C++ (в моя случай D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)
в) Cstdint типове директория с заглавни файлове (в моя случай:\MongoDBcplusplusClient\msinttypes-r26 )
- Стъпка 11
Отидете на Linker → Общи и в Допълнителни директории на библиотеката добавете:
а) Увеличете директорията с .lib файлове (в моя случай D:\MongoDBcplusplusClient\lib32)
б) MongoDB C++ драйвер .lib директория с файлове (в моя случай D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)
След тези стъпки проектът, който използва драйвера, ще бъде успешно изграден както в конфигурации за издаване, така и за отстраняване на грешки.