您当前的位置: 首页 >  opencv

RuiH.AI

暂无认证

  • 8浏览

    0关注

    274博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CMakeLists学习三、指定OpenCV, PCL版本

RuiH.AI 发布时间:2022-09-01 21:53:50 ,浏览量:8

CMakeLists学习三、指定OpenCV, PCL版本
  • 前言
  • OpenCV版本指定
  • PCL版本指定

前言

本篇记录一下在CMakeLists.txt中指定OpenCV, PCL的版本(可以举一反三到其他包的版本指定上)

首先需要明确CMakeLists的找包逻辑,可以参考find_package查找包,以及ld搜索链接库路径两篇博文。

OpenCV版本指定

如果指定的opencv的路径在/usr/local下安装了(并且根据教程把/usr/local/lib放到LD_LIBRARY_PATH中保证ld能找到动态库),或者是通过sudo apt安装的二进制包,则可以直接在find_package时指定版本:

# EXACT表示版本必须一致,否则大版本一致即可
# REQUIED表示必须找到该包,否则停止,于此相反的是QUIET,找不到包也不会报错
find_package(OpenCV 3.4.15 EXACT REQUIRED)

如果指定的opencv路径不满足以上条件,则需要通过set指定找包路径,这个路径是opencv的.cmake文件位置:

# 设定优先找包路径
set(OpenCV_DIR /usr/local/share/OpenCV)
# 然后find_package找opencv时优先查找上面这个路径下的.cmake文件
# 如果符合版本要求就使用,不符合就会去默认找包路径再其他opencv版本
find_package(OpenCV 3.4.15 EXACT REQUIRED)
PCL版本指定

PCL版本指定有个很有趣的地方,就是必须指定版本的第三位,否则就找不到这个指定的包(比如如果指定PCL 1.8,安装的版本是1.8.1和1.11.0,则cmake可能会使用1.11.0,如果指定EXACT,会报找不到对应的PCL版本)。

同样,假设PCL已经在默认搜索路径中了,那么可以直接:

find_package(PCL 1.8.1 EXACT REQUIRED)

还可以通过set指定找包路径,这个路径是pcl的.cmake文件位置:

set(PCL_DIR "/usr/local/share/pcl-1.11")
# 设定了PCL找包位置后,就会优先在这个路径找.cmake文件了
find_package(PCL REQUIRED)
关注
打赏
1658651101
查看更多评论
立即登录/注册

微信扫码登录

0.5093s