opencv的跨平台的安装以及多版本并存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv的跨平台的安装以及多版本并存相关的知识,希望对你有一定的参考价值。
参考技术A 遇到一个奇葩的项目,有的程序里调的是opencv2.4.13的版本,有的程序里调的是opencv3.2的版本,真实有意思!
程序员天生就是为解决问题而生的!想想该怎么解决吧!因为本人也是接触opencv 不太久,之前接触的用的还是python接口。接下来我将简单的阐述一下我解决这个问题的过程,仅此记录一下这个过程。
当然对于版本没有要求的话直接可以使用包管理器进行安装
安装3.4.5的时候出现了一个错误,说是c++11的问题,应该是g++的问题,多次重现安装并没有解决这个问题,于是在搜索过程中发现opencv 并不能做向下兼容,因为opencv2是相对庞大的,而opencv3则是相对精简的接口之类的都有很大的变化,并且调用opencv的程序编译好之后他只会搜索这个文件,比如libioencv_world.so.2.4,so文件都有对于的版本号。所以说并不是很好处理
但是这时候出现另一个奇怪的问题:
通过 strings /lib64/libc.so.6 |grep GLIBC_ 命令看到 机器上的glib的版本是1.7的怪不得不行了,没办法又进入了一次愚蠢的行动中--- 升级glib ,从网上找了很多升级的方法,但是每次均以失败告终,为什么会产生这样的结果?通过分析,可以发现这个库是系统非常底层的库,只要提前卸载,或者安装失败都会造成系统不能使用!(辛苦快照多,不然我的类似)在仔细分析,为什么会出现这个问题。因为我复制的别的机器的lib文件,极有可能是因为,编译这个文件的机器版本较高。
做工程是一件需要认真的事情,通过这次事情又如下几点感受
ubuntu 安装使用多版本opencv
ubuntu 16.04 安装了ROS kinetic,而ROS自带的是opencv3.1。之前很多程序都是opencv2,所以决定再装一个opencv2。
##安装opencv2到指定路径
1.下载opencv2.4.13,链接为opencv sourceforge上的网页,自己选择合适的版本。
2.解压到指定文件夹, 比如/home/hyj/opencv2.4.13
3.打开终端,切换到该文件集下,并创建文件夹如下:
cd /home/hyj/opencv2.4.13
mkdir release
cd release
mkdir installed
创建的installed文件集就是我们安装opencv2.4.13的路径。
4.使用cmake的时候指定opencv的安装路径,因为之前已经默认安装了opencv3,所以这里必须指定安装路径,比如我打算安装在刚刚创建的installed文件下。接着上面mkdir installed命令后,输入如下cmake 命令:
cmake -DCMAKE_INSTALL_PREFIX=/home/hyj/opencv-2.4.13/release/installed -DCMAKE_BUILD_TYPE="Rlease" ..
5.编译安装
make
make install
以上安装过程参考
http://code.litomisky.com/2014/03/09/how-to-have-multiple-versions-of-the-same-library-side-by-side/
##同理安装opencv3.1
如果你电脑已经有了opencv2.4,想装一个opencv3,也要显式的指定安装路径,如下。
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/hyj/slam_Thirdparty/opencv-3.1.0/release/installed -D OPENCV_EXTRA_MODULES_PATH=/home/hyj/slam_Thirdparty/opencv_contrib-3.1.0/modules -DENABLE_CXX11=ON ..
##使用多版本opencv
在写CmakeList.txt,如果只有一个版本的opencv,我们一般直接使用
FIND_PACKAGE(OpenCV REQUIRED)
现在如果是使用默认安装的opencv3.1,则使用使用上面的指令就足够了。如果使用安装我们自己指定路径的opencv2.4.13,则在上面指令前面加上如下指令:
set(CMAKE_PREFIX_PATH "/home/hyj/opencv-2.4.13/release/installed/")
上述过程参考heroacool的csdn博客。
以上是关于opencv的跨平台的安装以及多版本并存的主要内容,如果未能解决你的问题,请参考以下文章