2021-05-08 集成mongoDBCXX Driver至Qt开发环境 (二)

下面是我使用的CMakeLists.txt,我用Qt creator创建的,可以参考我是如何将mongodb c++ driver引入到项目中的。

cmake_minimum_required(VERSION 3.5)

project(mogonDB01 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.
# They need to be set before the find_package(Qt5 ...) call.

#if(ANDROID)
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
#    if (ANDROID_ABI STREQUAL "armeabi-v7a")
#        set(ANDROID_EXTRA_LIBS
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
#    endif()
#endif()

# qt 自动生成的
find_package(Qt5 COMPONENTS Widgets REQUIRED)

# 引入mongodbcxx
find_package(libmongocxx REQUIRED)

#引入boost
find_package(Boost COMPONENTS system filesystem REQUIRED)

if(ANDROID)
  add_library(mogonDB01 SHARED
    main.cpp
    mainwindow.cpp
    mainwindow.h
    mainwindow.ui
  )
else()
  add_executable(mogonDB01
    main.cpp
    mainwindow.cpp
    mainwindow.h
    mainwindow.ui
  )
endif()

target_include_directories(mogonDB01 PRIVATE 
${LIBBSONCXX_INCLUDE_DIRS} #boson的 include目录
${LIBMONGOCXX_INCLUDE_DIRS} # mongocxx的include目录
${Boost_INCLUDE_DIR})# boost的include目录

target_link_libraries(mogonDB01 PRIVATE 
Qt5::Widgets 
${LIBMONGOCXX_LIBRARIES}) #mongocxx的动态链接库

你可能会疑惑,类似于LIBMONGOCXX_INCLUDE_DIRS是在哪儿找到的?逻辑是这样的,find_package会在你cmake config时让你指定一个目录,这个目录必须包含package_name-config.cmake和package_name-config-version.cmake。 比如我们这里用 find_package(libmongocxx REQUIRED) 去寻找我们编译好的libmongocxx,那么我们在cmake config时给定的目录就会包含libmongocxx-config.cmakelibmongocxx-config-version.cmake。 如下图是我给定的位置

image.png

libmongocxx-config.cmake中就会有动态链接库,和include目录的路径,见下图

image.png

所以其他几个类似的动态链接库和Include目录也是用上面的方法找到的。

如果觉得帮到了您,还希望能点个赞!
也欢迎留言沟通~

你可能感兴趣的:(2021-05-08 集成mongoDBCXX Driver至Qt开发环境 (二))