-DENABLE_CXX11=ON

https://blog.csdn.net/u012986684/article/details/77490824

大家好,今天说说,OpenCV的多版本切换问题!

其实总的来说很简单,说下方法!

1 首先当然准备两个不同版本opencv (比如2.4.9和3.1.0)

2 cmake-gui 设置 CMAKE_INSTALL_PREFIX

2.4.9 安装路径:/usr/local/opencv2

3.1.0 安装路径 :/usr/loacl/opencv3

3 安装

比如 按照2.4.9

新建build

cmake-gui …

选择CMAKE_INSTALL_PREFIX /usr/local/opencv2

生成makefile文件后

make -j16

同理 3.1.0 也是如此

4 设置管理

一般情况下不能直接opencv 的环境写到bashrc,所以我们需要手动进行切换

当你需要使用opencv 2.4.9的话,在终端输入:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib

生效

sudo ldconfig

当你需要使用opencv 3.1.0的话,在终端输入:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib

5 CmakeLists.txt设置

opencv3.1.0 需要手动设置 寻找到opencv-config.cmake

set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")

sudo gedit ~/.bashrc

6 常见可能会错误

error:1 /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")

https://blog.csdn.net/u010566411/article/details/54317145

修改cmake_install_prefix,
opencv3.1 安装目录/usr/local/opencv3,
opencv2.4 安装目录/usr/local/opencv2,
在cmake-gui中可以搜索cmake_install_prefix,修改。
注意如果准备切换opencv版本,一定不要选择默认路径,否则,链接opencv的时候会因为多版本的lib发生链接冲突。

跳过系统环境变量的设置,设置/etc/profile和~/.bashrc导致同时使用不同版本时发生错误,所以跳过;
配置终端的环境变量,不同的终端设置不同的opencv

步骤:
打开终端,需要运行opencv3的,注意/usr/local/opencv3为opencv3.1的安装目录

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib

相应的,需要运行opencv2的,注意/usr/local/opencv2为opencv2.4*的安装目录

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib

pkgcongfig中的有opencv.pc保存有对应opencv的include和lib路径,但是sudo ldconfig后生效,
可以用下列三个命令验证

pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv

优点:
可以不同版本的opencv同时编译;
缺点:
每个终端下运行opencv 都要设置对应的环境变量,新建终端默认没有opencv的环境变量需要从重新设置。

第七步:CMakeLists的一点点修改
因为usr/local/opencv3/share/OpenCV/OpenCVConfig.cmake中设置了opencv的配置,自定义路径安装opencv时,找不到这个文件OpenCVConfig.cmake,opencv-config.cmake
需要在项目的CMakeList.txt中添加OpenCVConfig.cmake的路径

set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")

gpu版本的opencv在cmake时有两个选项

CUDA_ARCH_BIN
CUDA_ARCH_PTX

第一个参考网址将gpu对应的计算能力填进去。
第二个参数后面的数值删除

编译时用make 不要用make -j多线程编译。不差这么一些时间。多线程编译出现过编译失败的情况。

ubuntu16.04 opencv多版本管理与切换相关推荐

  1. 双目摄像头立体成像(三)双目摄像头的标定及测距(Ubuntu16.04 + OpenCV)

    https://blog.csdn.net/qq_41433316/article/details/99118495

  2. ubuntu16.04中IDEA无法输入中文问题

    问题: Ubuntu16.04中,IDEA下面无法切换搜狗输入法及其他输入法,无法输入中文,但是原来可以正常输入中文 解决: 在IDEA的bin目录下的idea.sh文件的前面加上 export XM ...

  3. Ubuntu18.04 + OpenCv 2.4.13安装(亲测有效,内含踩坑解决方案)

    Ubuntu18.04 + OpenCv 2.4.13安装(亲测有效,内含踩坑解决方案) 安装cmake-qt-gui 下载apt包 下载OpenCV并修改一些文件 第一坑:改文件 第二个坑:还是改文 ...

  4. linux ubuntu16.04 编译opencv教程(没编过,有时间再弄,推流不用opencv也行的)

    文章目录 下源码 编译 配置opencv环境 下源码 https://github.com/opencv/opencv/releases/tag/4.4.0 然后在ubuntu里建个文件夹把它扔进去, ...

  5. Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细

    本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.c ...

  6. Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe

    目录 一. 电脑配置: 二. 安装过程 1.安装相关依赖项 2.安装NVIDIA驱动 一,下载安装驱动法 二.终端直接下载安装驱动法. 3.安装CUDA 4.配置cuDNN 5.安装opencv3.1 ...

  7. Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程

    Ubuntu16.04 安装 CUDA.CUDNN.OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程 1.配置环境 Ubuntu16.04 64-bit系统 ...

  8. ubuntu16.04下NVIDIA+CUDA+CUDNN+TensorFlow+Pytorch+Opencv等深度学习环境配置

    1.Ubuntu16.04配置 1.1 更改Ubuntu源 所谓源,可以理解为Ubuntu从何处下载软件.默认的源是server for china,个人测试这是从美国的服务器下载软件进行安装的,为了 ...

  9. ubuntu16.04 install opencv、Sohpus、PCL、OctoMap、VTK

    ubuntu16.04 install opencv.Sohpus.pcl.OctoMap.VTK 1.opencv 1.1 查看 opencv 版本 1.2 安装 opencv (1)安装 open ...

最新文章

  1. android Canvas 最基础知识总结
  2. 自动驾驶中高效的激光雷达里程计
  3. 04JavaScript中函数也是对象
  4. Sql Server 开窗函数Over()的使用
  5. STM32F103按键操作的另一种实现——状态机
  6. java ee面试题专家总结(必看),Java EE面试题专家总结(必看)
  7. 推荐一个专业的正则表达试学习网站
  8. 程序员看过都说好的资源网站,你懂得!
  9. 嵌入式开发比单片机开发难?
  10. 基于 OS X Mavericks 系统
  11. kali Linux外网渗透控制Android安卓手机系统。
  12. 苹果手机速度慢_你玩手机的时候,Ta在用APP学日语 (安卓版APP,苹果也适用)...
  13. java开发微信公众号(SpringMVC)2-消息管理功能
  14. CentOS7.9安装教程,以及出现dracut- initqueue timeout-starting…starting timeout scripts 解决办法,linux配置静态IP地址
  15. Netkeeper安装/卸载后wifi消失问题解决方法
  16. 使用vs建立web网站及IIS
  17. PBR之IBL和球谐的梳理
  18. 人工蜂群算法python_python实现人工蜂群算法
  19. 2008.05.19 默哀祈福
  20. 项目使用的 safe.cs 帮助类

热门文章

  1. 第十九课.隐马尔科夫模型
  2. css less 不要作用到子对象_不要盲目的在项目中使用LESS CSS
  3. 人类dna信息量_多大容量的硬盘才能装下全部人类的DNA?
  4. Mdnice 简洁主题
  5. 微生物所高程-郭良栋组(内附招聘)在菌根适应策略研究中取得进展
  6. 微生物生态期刊Soil Biology and Biochemistry(SBB)简介
  7. Nature子刊:整合宏基因组、代谢组和表型分析的的计算框架
  8. STE:入侵植物可选择性富集土壤微生物
  9. Python使用matplotlib可视化柱状图、坐标轴标签的符号(-)显示为了方框□□、设置rcParams参数配置解决
  10. R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者