Cmakelist(二)

前面介绍了一个project生成的基本的用法,这里我们继续学习如何添加第三方包的用法:

find_package(<package_name> [version] [EXACT] [QUIET] [MODULE] [REQUIRED] [COMPONENTS <component1> <component2> ...])

 <package_name> 需要查找的包名,注意大小写。

version 可选参数;指定所需的版本号

EXACT 可选参数;要求找到的包的版本与指定的版本必须完全匹配,

QUIET 可选参数; 静默模式,不会显示详细的查找信息

REQUIRED 可选参数;要求找到指定的包,如果找不到会产生错误。而如果不指定REQUIRED则CMake会继续执行,所以必须检查找到的包的版本是否和指定版本号兼容

COMPONENTS 可选字段; 指定要加载的组件,如果存在组件无法找到将会报错

MODULE 可选字段;“如果Module模式查找失败则回退到Config模式进行查找”,但是假如设定了MODULE选项,那么就只在Module模式查找,如果Module模式下查找失败并不回落到Config模式查找。

find_package(<project_name>)如何使用呢,请看如下案例:

find_package(OpenCV REQUIRED)
if(OpenCV_FOUND)
    # 引入头文件目录
    include_directories(${OpenCV_INCLUDE_DIRS})
    # 链接库文件
    target_link_libraries(main ${OpenCV_LIBRARIES})
else(OpenCV_FOUND)
    message(FATAL_ERROR "OpenCV library not found")
endif()

find_package()将查找的结果返回到<project_name>_FOUND中;若查找成功一般来讲则对<project_name>_INCLUDE_DIR,<project_name>_LIBRARIES进行赋值。

MODULE模式下一般默认cmake的find<project_name>.cmake,如果cmake下不存在,须手动添加自定义的find<project_name>.cmake模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值