怎么使用CMake链接不同版本的第三方库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么使用CMake链接不同版本的第三方库相关的知识,希望对你有一定的参考价值。
参考技术A 写批处理来做这件事。CMake中有CMAKE_CONFIGURATION_TYPE这个环境变量,其中的值就是Debug, Release, RelWithDebInfo, MinSizeRel这几个。只要使用if语句判断一下,在指定的版本使用指定的第三方库版本就可以了。
可以参考OpenCV的CMakeLists本回答被提问者采纳
CMAKE使用链接第三方SO库
参考技术A CMake命名变量
set(INC_DIR /usr/local/include)
set(LINK_DIR /usr/local/lib)
set(SOURCE_FILES main.cpp)
去哪里找头文件 相当于gcc/clang 中的-I(i的大写字母)参数
include_directories($INC_DIR) # 用$引用变量
去哪里找库文件 .so .dll .dylib 相当于gcc 中的-L参数
link_directories($LINK_DIR)
要链接的库文件的名字 相当于gcc中的-l(小写的l)参数
target_link_libraries(test)
只写库名就可以,就是libxxx.so的中间xxx的部分
也可以写成下面这样
target_link_libraries(test)
通过上面的这些关键词,我们就可以使用第三方库了。
cmake_minimum_required(VERSION 2.8.12)
PROJECT (main)
ADD_EXECUTABLE(main main.c)
INCLUDE_DIRECTORIES(/usr/include/hello)
# 静态链接库
# TARGET_LINK_LIBRARIES(main libhello.a)
# 动态链接库
set(LINK_DIR /usr/local/lib)
link_directories($LINK_DIR)
target_link_libraries(main libhello.so)
拷贝动态链接库的时候需要注意符号链接是否还在
以上是关于怎么使用CMake链接不同版本的第三方库的主要内容,如果未能解决你的问题,请参考以下文章