案例分析 案例由于CMake的find_package有时候会发现使用不便,因此可以考虑使用pkg代替
cmake_minimum_required(VERSION 2.8) set(APPNAME demo) project(${APPNAME}) set(ENV{PKG_CONFIG_PATH} /usr/lib/pkgconfig) find_package(PkgConfig) pkg_search_module(BSON REQUIRED libbsoncxx) pkg_search_module(MonGO REQUIRED libmongocxx) include_directories(app ${BSON_INCLUDE_DIRS} ${MONGO_INCLUDE_DIRS}) aux_source_directory(. DIRSRCS) # generate application add_executable(${APPNAME} ${DIRSRCS} ) # link library to application target_link_libraries(${APPNAME} ${BSON_LIBRARIES} ${MONGO_LIBRARIES} )pkgconfig的使用
set(ENV{PKG_CONFIG_PATH} /usr/lib/pkgconfig) find_package(PkgConfig)查找需要使用的第三方库目录
pkg_search_module(BSON REQUIRED libbsoncxx) pkg_search_module(MonGO REQUIRED libmongocxx)
在/usr/local/lib/pkgconfig目录下,可找到我们编译安装好的第三方库配置文件,pkgconfig下的配置为*.pc文件。
比如,我们看到该文件夹下存在libbsoncxx.pc,那么我们可以直接使用,只需要定义pkg_search_module(BSON REQUIRED libbsoncxx),BSON自定义名字即可。
include_directories(app ${BSON_INCLUDE_DIRS} ${MONGO_INCLUDE_DIRS})
头文件的目录格式为${XXX_INCLUDE_DIRS}
链接库target_link_libraries(${APPNAME} ${BSON_LIBRARIES} ${MONGO_LIBRARIES} )
库文件的目录格式为${XXX_LIBRARIES}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)