前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下使用自定义路径来运行OpenCV

Linux下使用自定义路径来运行OpenCV

作者头像
王云峰
发布2019-12-25 16:18:02
2.2K0
发布2019-12-25 16:18:02
举报

有的时候系统安装的OpenCV版本和你需要的版本不一样,而你又没有权限或者为了兼容不能修改系统的OpenCV,这个时候你就得自己编译OpenCV,然后在需要的代码里面引用你编译的版本。整个过程不复杂,但是之前一直没搞清楚,最近经师弟点拨才明白,这里记录一下。

我之前写过一篇在Linux下编译OpenCV的博客,大家可以参考下,我这里只记录与其中不同的部分。

修改CMAKE_INSTALL_PREFIX

默认的CMAKE_INSTALL_PREFIX/usr/local,而我们不想安装到这里,所以这里修改其为你想要保存的目录,如/home/username/local:

cmake -D CMAKE_INSTALL_PREFIX=/home/username/local ..

另外一个小问题,如果你在cmake的时候出现下面信息:

ICV: Downloading ippicv_linux_20151201.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file):
  file DOWNLOAD HASH mismatch

    for file: [/home/pauka/opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz]
      expected hash: [808b791a6eac9ed78d32a7666804320e]
        actual hash: [f166287239920c4a16e6f8870e15ef79]

即ippicv这个包下载不了,你可以在cmake里面加-D WITH_IPP=OFF来禁用这个包,也可以手动下载,下载方式见这里

cmake完后,继续执行makemake install。注意这里make install前面不需要sudo,因为我们不修改系统目录,不需要管理员权限。

修改lib和include,增加OpenCV的目录

为了在编译的时候找到我们的OpenCV,需要修改lib和include路径,把OpenCV的目录加到里面去。例如编译Caffe的时候,修改INCLUDE_DIRSLIBRARY_DIRS,将OpenCV的目录加进去。加入我们的OpenCV的编译后存放路径是/home/username/local/,那么对应的lib和include目录应该是/home/username/local/lib/home/username/local/include

修改PKG_CONFIG_PATH环境变量

这个环境变量是给pkg-config这个工具增加额外的查找目录的,pkg-config会默认查找/usr/lib/pkgconfig/usr/share/pkgconfig下的.pc配置文件,额外的目录通过设置PKG_CONFIG_PATH来增加。我们这里将自己的OpenCV放进去,即可:

export PKG_CONFIG_PATH=/home/username/local:$PKG_CONFIG_PATH

检查设置是否正确

如何验证编译别的库的时候找到的是我们编译的OpenCV而不是系统的呢?可以通过pkg-config命令来确定:

pkg-config --modversion opencv

如果版本是你编译的版本,那就说明找到了,可以正常用了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修改CMAKE_INSTALL_PREFIX
  • 修改lib和include,增加OpenCV的目录
  • 修改PKG_CONFIG_PATH环境变量
  • 检查设置是否正确
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档