Ubuntu16.04下opencv3.x和opencv2.x多版本共存

Ubuntu16.04下OPencv多版本共存

之前安装了opencv3.4.1,现在需要安装opencv2.4.11

1.下载opencv2.4.11安装包

2.安装依赖项

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev  libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

3.在/usr/local新建opencv2411文件来安装存放opencv2.4.11的安装文件

mkdir -p /usr/local/opencv2411

4.编译安装

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2411 -D CUDA_GENERATION=Kepler -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=OFF -D WITH_OPENGL=ON -D BUILD_TIFF=ON ../local/opencv2411 ..

make -j8

sudo make install

make过程中可能会报以下错误:
在这里插入图片描述解决方案:需要修改一处源码:

在opencv-2.4.11/modules/gpu/src/graphcuts.cpp中将

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

5.配置

sudo gedit ~/.bashrc
//在文件末尾加上下面两行:
export PKG_CONFIG_PATH=/usr/local/opencv2411/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv2411/lib
//保存之后
source ~/.bashrc
//查看opencv的版本
pkg-config --modversion opencv

6.OpenCV3.4.0和OpenCV2.4.11使用的切换方法
在CMakeLists.txt中加入下面几行即可使用OpenCV2.4.11:

set(OpenCV_DIR /usr/local/opencv2411/share/OpenCV)
find_package(OpenCV 2.4 REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /usr/local/opencv2411/include)

使用OpenCV3.4.0时,将上面的三行中的第1行和第3行去掉,然后将第2行改为即可。

find_package(OpenCV REQUIRED)

参考链接:
https://blog.csdn.net/llfjcmx/article/details/81238766

https://blog.csdn.net/qq_38880380/article/details/77066065

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值