ubuntu16.04 opencv多版本管理与切换
-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多版本管理与切换相关推荐
- 双目摄像头立体成像(三)双目摄像头的标定及测距(Ubuntu16.04 + OpenCV)
https://blog.csdn.net/qq_41433316/article/details/99118495
- ubuntu16.04中IDEA无法输入中文问题
问题: Ubuntu16.04中,IDEA下面无法切换搜狗输入法及其他输入法,无法输入中文,但是原来可以正常输入中文 解决: 在IDEA的bin目录下的idea.sh文件的前面加上 export XM ...
- Ubuntu18.04 + OpenCv 2.4.13安装(亲测有效,内含踩坑解决方案)
Ubuntu18.04 + OpenCv 2.4.13安装(亲测有效,内含踩坑解决方案) 安装cmake-qt-gui 下载apt包 下载OpenCV并修改一些文件 第一坑:改文件 第二个坑:还是改文 ...
- linux ubuntu16.04 编译opencv教程(没编过,有时间再弄,推流不用opencv也行的)
文章目录 下源码 编译 配置opencv环境 下源码 https://github.com/opencv/opencv/releases/tag/4.4.0 然后在ubuntu里建个文件夹把它扔进去, ...
- Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细
本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.c ...
- Ubuntu16.04 安装配置深度学习配置:GPU加速 Cuda+cudnn+opencv+caffe
目录 一. 电脑配置: 二. 安装过程 1.安装相关依赖项 2.安装NVIDIA驱动 一,下载安装驱动法 二.终端直接下载安装驱动法. 3.安装CUDA 4.配置cuDNN 5.安装opencv3.1 ...
- Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程
Ubuntu16.04 安装 CUDA.CUDNN.OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程 1.配置环境 Ubuntu16.04 64-bit系统 ...
- ubuntu16.04下NVIDIA+CUDA+CUDNN+TensorFlow+Pytorch+Opencv等深度学习环境配置
1.Ubuntu16.04配置 1.1 更改Ubuntu源 所谓源,可以理解为Ubuntu从何处下载软件.默认的源是server for china,个人测试这是从美国的服务器下载软件进行安装的,为了 ...
- 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 ...
最新文章
- android Canvas 最基础知识总结
- 自动驾驶中高效的激光雷达里程计
- 04JavaScript中函数也是对象
- Sql Server 开窗函数Over()的使用
- STM32F103按键操作的另一种实现——状态机
- java ee面试题专家总结(必看),Java EE面试题专家总结(必看)
- 推荐一个专业的正则表达试学习网站
- 程序员看过都说好的资源网站,你懂得!
- 嵌入式开发比单片机开发难?
- 基于 OS X Mavericks 系统
- kali Linux外网渗透控制Android安卓手机系统。
- 苹果手机速度慢_你玩手机的时候,Ta在用APP学日语 (安卓版APP,苹果也适用)...
- java开发微信公众号(SpringMVC)2-消息管理功能
- CentOS7.9安装教程,以及出现dracut- initqueue timeout-starting…starting timeout scripts 解决办法,linux配置静态IP地址
- Netkeeper安装/卸载后wifi消失问题解决方法
- 使用vs建立web网站及IIS
- PBR之IBL和球谐的梳理
- 人工蜂群算法python_python实现人工蜂群算法
- 2008.05.19 默哀祈福
- 项目使用的 safe.cs 帮助类
热门文章
- 第十九课.隐马尔科夫模型
- css less 不要作用到子对象_不要盲目的在项目中使用LESS CSS
- 人类dna信息量_多大容量的硬盘才能装下全部人类的DNA?
- Mdnice 简洁主题
- 微生物所高程-郭良栋组(内附招聘)在菌根适应策略研究中取得进展
- 微生物生态期刊Soil Biology and Biochemistry(SBB)简介
- Nature子刊:整合宏基因组、代谢组和表型分析的的计算框架
- STE:入侵植物可选择性富集土壤微生物
- Python使用matplotlib可视化柱状图、坐标轴标签的符号(-)显示为了方框□□、设置rcParams参数配置解决
- R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者