Ubuntu安装opencv库3.4.10,并在cmake工程或者makefile文件中中引入opencv库

Windows下安装不同,Ubuntu安装OpenCV库时,需要事先安装依赖,而且不同OpenCV库所需的依赖可能会有所不同,下面的依赖亲测 3.4.10 和 4.5.5版本的有效,但是4.6以上版本安装可能会报错。

参考链接:https://blog.csdn.net/m0_48609250/article/details/124225995


目录

一、下载和安装Opencv库

1、下载opencv库

2、配置依赖环境

3、安装opencv

二、引入Opencv库

1、cmake工程引入

2、makefile文件引入


一、下载和安装Opencv库

1、下载opencv库

opencv官方下载:download | opencv

opencv国内快速下载:download | opencv

opencv官方下载

如果是官方下载,选择自己需要的版本,然后点击source

opencv国内快速下载

如果是国内快速下载,往下滑,选择自己需要的版本,点击进入

点进去以后,复制链接地址 

在Ubuntu的命令行中输入

# wget 刚刚复制的链接地址
wget https://www.raoyunsoft.com/opencv/opencv-3.4.10/opencv-3.4.10.tar.gz

2、配置依赖环境

如果不执行这一步,在生成配置文件的时候会报错。

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev

3、安装opencv

(1) 解压目录

解压方才下载的opencv

tar -zxvf opencv-3.4.10.tar.gz

进入到解压目录,新建一个build目录,我们将在这个build目录中配置及安装opencv

cd opencv-3.4.10
mkdir build
cd build

(2) cmake生成makefile配置文件

最简单的生成方式就是

cmake .. 

除此之外,还可以携带附加选项(根据自己的需求而定)

# 安装到/user/local/opencv
cmake .. -D CMAKE_INSTALL_PREFIX=/usr/local/opencv  \
-D CMAKE_BUILD_TYPE=DEBUG    \
-D WITH_FFMPEG=ON
附加选项 解析 可选值
CMAKE_INSTALL_PREFIX 指定安装位置
CMAKE_BUILD_TYPE 选择编译方式 RELEASE、DEBUG
OPENCV_GENERATE_PKGCONFIG 是否生成PKGCONFIG需要的opencv.pc文件 ON、OFF
BUILD_OPENCV_WORLD 是否只是一个opencv_world动态链接库 ON、OFF
WITH_Qt 是否用Qt作为highgui模块的显示框架(需要先安装Qt) ON、OFF
WITH_FFMPEG 是否使用FFMPEG进行视频IO ON、OFF

(3) 编译生成目标执行文件

#选择一: 编译命令逐条执行(比较慢)
make
  
#选择二:多条编译命令并行
# 让make最多允许N个编译命令同时执行(N <= 2*处理器核数)
make -jN     

我给虚拟机分配了2核,可以输入 make -j4 来加快编译速度。在编译过程中,若遇到如下问题,可以参考如下链接。

         参考链接ubuntu编译opencv出现‘inconsistent operand constraints in an ‘asm‘

(4) 开始安装 

开始安装

sudo make install

ldconfig命令的作用是为新安装的动态链接库创建连接所需的缓存文件,需要手动执行

ldconfig

(5) 查看版本信息

pkg-config --modversion opencv

(6) 配置环境变量

配置环境变量的目的是方便后续在cmake工程中引入

  • 如果只是当前用户使用,那就在家目录下的 .bashrc 或者  .bash_profile 中配置
  • 如果是当前系统的所有用户都可以使用,那就在 /etc/profile 文件中配置

下面我就在 /etc/profile 中配置,在  /etc/profile 的最后一行加上如下内容

export OPENCV_DIR=/home/linux/third-part/opencv-3.4.10/build

注意:环境变量名必须是OPENCV_DIR,路径是上面自己新建的build目录,目录下必须包含OpenCVConfig.cmake 文件

二、引入Opencv库

1、cmake工程引入

CMakeLists 文件的引入方式如下:

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})    # 引入头文件目录

file(GLOB ALL_SRCS src/*.cpp)
add_executable(${PROJECT_NAME} ${ALL_SRCS })
target_link_libraries(${PROJECT_NAME}          # 引入库文件 
    ${OpenCV_LIBS}
)

2、makefile文件引入

makefile 是按需引入,假如你在代码中使用了如下头文件

  • #include <opencv2/core>
  • #include <opencv2/highgui>

那么相对应的,就要引入 库文件 libopencv_core.so、libopencv_highgui.so,引入的时候,需要去掉前缀 lib 和 后缀 .so

INCS += -I/usr/local/include/                 # 引入头文件路径

LIBS += -L/usr/local/lib                      # 引入库文件路径
LIBS += -lopencv_core -lopencv_highgui        # 引入库文件

obj: $(DEPENDS)
    $(CXX) -o $@ $^ $(LIBS) $(INCS)

猜你喜欢

转载自blog.csdn.net/challenglistic/article/details/129101580