2016-05-13 2 views
1

Я новичок в cmake, и я хочу подключиться к mongodb с помощью C++ и последнего mongodb cxx-драйвера. Мне удалось скомпилировать и установить драйвер, но теперь я придерживался его в моем проекте cmake.Использование драйвера mongodb cxx в проекте cmake C++

Я установил драйвер mongodb с настройками по умолчанию, поэтому он находится под/usr/local/lib/include/mongocxx/v_noabi/mongocxx.

В моем файле Cmake я сведущих получить включает решены с:

include_directories (/ USR/местные/Библиотека/включать/mongocxx/v_noabi/USR/местные/Библиотека/включать/bsoncxx/v_noabi)

, но я не знаю, как на самом деле связать файлы драйверов с моим исполняемым файлом. Может ли кто-нибудь мне помочь?

ответ

2

Вам не нужно делать это таким образом. Вы можете и должны найти драйвер C++ 11 через CMake find_package или через pkg_check_modules подсистемы. Драйвер C++ 11 поддерживает оба.

+0

Спасибо. Мне удалось заставить его работать! –

+0

@ paddy_89 С удовольствием слышу, как вы его работали. Считается вежливым, чтобы поддержать ответы, которые являются полезными, и принять лучший ответ. – acm

+0

@ paddy_89 Не могли бы вы принять этот ответ как правильный, чтобы другие люди, рассматривающие вопрос, знали, что ответ правильный? – acm

4

я это сделал связывая все, что связано с mongocxx документы водителя и с помощью CMake «find_package»:

find_package(libmongocxx REQUIRED) 
find_package(libbsoncxx REQUIRED) 
include_directories(${LIBMONGOCXX_INCLUDE_DIR}) 
include_directories(${LIBBSONCXX_INCLUDE_DIR}) 
include_directories("/usr/local/include/mongocxx/v_noabi") 
include_directories("/usr/local/include/bsoncxx/v_noabi") 
include_directories("/usr/local/include/libmongoc-1.0") 
include_directories("/usr/local/include/libbson-1.0") 
include_directories("/usr/local/lib") 

add_executable(YOUR_PROJECT ${SOURCE_FILES}) 

target_link_libraries(YOUR_PROJECT ${LIBMONGOCXX_LIBRARIES}) 
target_link_libraries(YOUR_PROJECT ${LIBBSONCXX_LIBRARIES}) 
+0

большое спасибо, и мне это очень помогает. Я использую macOS и устанавливаю mongo-cxx-driver с помощью homebrew. в соответствии с настройками (/usr/local/Cellar/mongo-cxx-driver/3.1.1/lib/cmake/libmongocxx-3.1.1/libmongocxx-config.cmake), он установил include dirs и lib dirs следующим образом: set_and_check (LIBMONGOCXX_INCLUDE_DIRS "$ {PACKAGE_PREFIX_DIR}/include/mongocxx/v_noabi") –

+0

Моя конфигурация INCLUDE_DIRECTORIES ($ {LIBBSONCXX_INCLUDE_DIRS} $ {LIBMONGOCXX_INCLUDE_DIR}), и нет необходимости добавлять следующие 2 абсолютных пути. hmm, не обижайтесь, это просто желание помочь больше чуваков, если у него есть некоторая информация –

+2

Я имею в виду LIBBSONCXX_INCLUDE_DIR vs LIBBSONCXX_INCLUDE_DIR [S] –

Смежные вопросы