OpenCV3与OpenCV2多版本共存的问题

其实很久之前LZ就遇到过类似的问题,大神们的口味不同,需要的OpenCV的版本也不一致,这样在想体验大神们公开的源码的时候就会产生各种问题,其中最常见的应该就是OpenCV版本不兼容的问题。有些代码比较友好,同时兼容2版本和3版本,但大多数还是只支持一个版本。

其实很简单,只要在cmake的时候进行对应的设定,针对不同版本给定不同的路径,在对应CMakeLists.txt中也设定对应的路径,管理起来还是很方便的。

LZ这里安装的是OpenCV3.2.0

这里写图片描述

对应进行解压安装,安装步骤不在赘述了,之前安装有出现过校验码不对,还有一些其他问题,因为当时没有做记录,现在记不太清了,不过应该baidu或者google都能够解决。

而且在make的时候卡在96%左右很久,是在编译cuda那部分的代码,然后LZ以为是程序直接卡死,后来发现只是真的编译很慢,需要等一段时间,查到的一句话是:BE PATIENT!用以共勉O(∩_∩)O哈哈~

进行cmake

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.2.0 ..
make
sudo make install 

头文件和库都安装在/usr/local/opencv3.2.0

针对其他版本的同理,设定对应的文件夹为版本号即可

这里LZ偷懒,版本2的直接用

sudo apt-get install libopencv-dev

最后查到对应的库都在 /usr/lib/x86_64-linux-gnu/,头文件都在/usr/include/opencv和/usr/local/include/opencv2中。

扫描二维码关注公众号,回复: 1599845 查看本文章

首先吧对应的路径弄清楚了,在CMakeList.txt才可以进行对应的设定

set(OpenCV_DIR /usr/local/opencv3.2.0/share/OpenCV)
find_package(OpenCV 3.2 REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /usr/local/opencv3.2.0/include)
link_directories(${OpenCV_LIBRARY_DIRS} /usr/local/opencv3.2.0/lib))

本来直接想从源码改接口的,无奈要改的太多了。。。而且看了下,改完后还会出现各种奇葩问题,所以还是直接安装两个版本的OpenCV吧,只要会管理,还是挺方便的

如果查看OpenCV版本

pkg-config --modversion opencv
3.2.0

默认还是OpenCV3.2.0版本O(∩_∩)O哈哈~

发现当程序员,有一个现象,就是如果碰到一个问题当时不进行解决,后面还会遇到一次两次,当你再也没办法绕过去的时候,只能硬着头皮去解决~(≧▽≦)/~啦啦啦

猜你喜欢

转载自blog.csdn.net/felaim/article/details/80657081