Ошибка при сборке драйвера mongocxx в Windows

Я пытаюсь следовать это руководство, и я в настоящее время на шаге 3.

Итак, после запуска

curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.0.1.tar.gz
tar -xzf r3.0.1.tar.gz
cd mongo-cxx-driver-r3.0.1/

Я пытаюсь сделать аналогичные команды, как в Руководство по Windows для Mongoc:

Если я просто

cmake -G "Visual Studio 14 2015 Win64" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/mongo-cxx-driver"

Я получаю ошибку

CMake Error at cmake/FindLibBSON.cmake:37 (message):
Don't know how to find libbson; please set LIBBSON_DIR to the prefix
directory with which libbson was configured.
Call Stack (most recent call first):
src/bsoncxx/CMakeLists.txt:67 (find_package)

Итак, здесь я пробовал разные вещи, такие как добавление путей в каталог libsson:

cmake -G "Visual Studio 14 2015 Win64" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/mongo-cxx-driver" "-DLIBBSON_DIR=C:/mongo-c-driver/lib/pkgconfig/" "-DLIBMONGOC_DIR=C:/mongo-c-driver/lib/pkgconfig/" "-DBOOST_ROOT=C:/local/boost_1_62_0/"

Это на самом деле работает, но потом, когда я пытаюсь построить с

msbuild.exe ALL_BUILD.vcxproj

Я получаю ошибку:

C:\Users\Erik\Documents\mongo-cxx-driver-r3.0.1\src\bsoncxx\array\view.cpp(21): fatal error C1083: Cannot open include
file: 'bson.h': No such file or directory [C:\Users\Erik\Documents\mongocxx-driver-r3.0.1\src\bsoncxx\bsoncxx_static.v
cxproj]

Этот файл, «bson.h», кажется, находится в директории

C:\mongo-c-driver\include\libbson-1.0

но я не уверен, почему он не находит файл или как я мог это сделать.

Очень ценю любой вклад по этому вопросу.

2

Решение

Вы не устанавливаете LIBBSON_DIR а также LIBMONGOC_DIR правильно. В вашем случае они оба должны быть настроены на C:\mongo-c-driver, Система сборки автоматически добавит include а также lib на этот базовый путь по мере необходимости. Вы можете найти чтение сценария appveyor информативным:

3

Другие решения

18 октября 2016

Эта проблема также возникает с Mac OS X и, возможно, с другими Un * xes.

  1. Используйте версию 3.0.2 (как минимум). (Официальное руководство упоминает 3.0.1, но есть ошибка исправлено в 3.0.2).
curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.0.2.tar.gz
  1. Я не изменился на build каталог, но в корень:
cd mongo-cxx-driver-r3.0.2
  1. Если драйвер C mongo (и libbson) не находится в каталоге по умолчанию, сообщите об этом команде cmake, а также скажите, что мы используем современный C ++ (11, 14, …). В моем случае: драйвер C mongo находится в / opt / mongodbDriverCpp (то же самое место, чтобы установить драйвер C ++ mongo).
cmake -DCMAKE_BUILD_TYPE = Release
-DCMAKE_INSTALL_PREFIX = / опт / mongodbDriverCpp
-DLIBBSON_DIR = / опт / mongodbDriverCpp
-DLIBMONGOC_DIR = / опт / mongodbDriverCpp
-DCMAKE_CXX_STANDARD = 14
  1. Сделать и установить
делать

сделать установку
  1. Команда для составления теста из официального руководства (изменение /opt/mongodbDriverCpp в ваш правильный каталог):
c ++ --std = c ++ 11 test.cpp -o run.test
-I / Opt / mongodbDriverCpp / включить / bsoncxx / v_noabi
-I / opt / mongodbDriverCpp / include / mongocxx / v_noabi /
-L / opt / mongodbDriverCpp / lib
-l Mongocxx
-l bsoncxx
  1. Запустить (сначала запустить сервер mongodb)
export LD_LIBRARY_PATH = / opt / mongodbDriverCpp / lib

./run.test
0

По вопросам рекламы [email protected]