OpenCV3.3.1安装提示以及多版本OpenCV并存

本文介绍如何在Ubuntu18.04上安装OpenCV3.3.1,并解决安装过程中的常见问题,如libgstream0.1问题及多个版本OpenCV并存时的冲突问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV3.3.1安装与OpenCV并存

按照如下提示安装
https://www.learnopencv.com/install-opencv3-on-ubuntu/

Ubuntu18.04就选择16.04方法来安装

会遇到的问题:

如果安装libgstream0.1出现问题,就看这里

在编译OpenCV时注意cmake命令有几处需要改动
如果在调用OpenCV时不需要cuda,最好编译时禁用cuda,在以下命令中加入-D WITH_CUDA=OFF

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D WITH_CUDA=OFF \
      -D CMAKE_INSTALL_PREFIX=/usr/local \#默认安装路径,可以改为你自定义路径,例如/usr/local/opencv-3.3.1

      -D INSTALL_C_EXAMPLES=ON \
     
      -D INSTALL_PYTHON_EXAMPLES=ON \

      -D WITH_TBB=ON \

      -D WITH_V4L=ON \

      -D WITH_QT=ON \

      -D WITH_OPENGL=ON \

      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \#opencv_contrib版本要和OpenCV版本一致,这一句命令指定了安装时抽取opencv_contrib组件的路径

      -D BUILD_EXAMPLES=ON ..#有两个点,不要忘记

安装好opencv后,如果你使用你自己定义的安装路径,还需要两个修改
一、修改.bashrc文件

sudo gedit ~/.bashrc

在文件最后加上两句

##############change opencv version to 3.3.1
export PKG_CONFIG_PATH=/usr/local/opencv-3.3.1/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv-3.3.1/lib
###########################

此时在终端输入pkg-config --modversion opencv应该输出3.3.1
二、修改ld.so.conf文件

cd /etc
sudo gedit ld.so.conf

添加最后一句,注意应该添加你自定义安装的/usr/local下的opencv文件下的lib,而不是你进行编译的软件包里的build目录下的lib

include /etc/ld.so.conf.d/*.conf
#include /home/rislab/Downloads/Lib/OpenCV/opencv-3.4.11/build/lib 失败
#include /home/rislab/opencv-3.3.1/build/lib 失败
#add opencv-3.3.1 lib path
include /usr/local/opencv-3.3.1/lib

添加完成后重新开一个终端或者sudo ldconfig

如果上述修改不起作用,可能有两种原因
一是
如果你已经在修改前用make命令编译过软件包,可能导致修改不起作用,这时候删除软件包重新下载,再编译就成功了。
二是在/etc/ld.so.conf.d/下有一个opencv.conf文件,可能需要你加入opencv的lib,当我只以默认路径安装opencv331,不安装其他版本OpenCV时,情况如下

rislab@rislab-pc:/etc/ld.so.conf.d$ cat opencv.conf 
/usr/local/lib
  1. 使用编译
    在编译过程中,由于安装了两个opencv版本报错。显示需要opencv的3.3内核,但是只找到3.4版本

https://www.cnblogs.com/scripthome/p/10351241.html

[ 87%] Building CXX object camera/CMakeFiles/img_publisher.dir/src/img_publisher.cpp.o
[100%] Linking CXX executable /home/rislab/catkin_ws/devel/lib/camera/img_publisher
/usr/bin/ld: warning: libopencv_core.so.3.3, needed by /usr/local/opencv-3.3.1/lib/libopencv_highgui.so.3.3.1, may conflict with libopencv_core.so.3.4
[100%] Built target img_publisher

我使用locate命令查找后发现,在/usr/local/lib文件夹下,确实只有3.4版本的库文件。

rislab@rislab-10700:/usr/bin$ locate libopencv_core
/home/rislab/Downloads/Lib/OpenCV/opencv-3.4.11/build/lib/libopencv_core.so
/home/rislab/Downloads/Lib/OpenCV/opencv-3.4.11/build/lib/libopencv_core.so.3.4
/home/rislab/Downloads/Lib/OpenCV/opencv-3.4.11/build/lib/libopencv_core.so.3.4.11
/home/rislab/opencv-3.3.1/build/lib/libopencv_core.so
/home/rislab/opencv-3.3.1/build/lib/libopencv_core.so.3.3
/home/rislab/opencv-3.3.1/build/lib/libopencv_core.so.3.3.1
/home/rislab/opencv-3.3.1/build/lib/libopencv_core_pch_dephelp.a
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_core.so.3.4
/usr/local/lib/libopencv_core.so.3.4.11
/usr/local/opencv-3.3.1/lib/libopencv_core.so
/usr/local/opencv-3.3.1/lib/libopencv_core.so.3.3
/usr/local/opencv-3.3.1/lib/libopencv_core.so.3.3.1
rislab@rislab-10700:/usr/bin$ 

使用软连接构建文件即可
比如ln -s 源文件 新文件
举例:

ln -s /usr/local/opencv-3.3.1/lib/libopencv_core.so.3.3 /usr/local/lib/libopencv_core.so.3.3

重现编译之后,问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值