1.下载源码

opencv官网

2.编译

  • 路径切入源码目录
  • 执行命令:
    cmake -DOPENCV_GENERATE_PKGCONFIG=YES - DCMAKE_INSTALL_PREFIX=/home/lx/opencv/install ..
    make
    make install
    

    注意:

    • 1).-DOPENCV_GENERATE_PKGCONFIG=YES选项是编译生成opencv4.pc这个文件用于pkg-config程序管理已安装库的头文件和库文件,编译结束opencv4.pc文件一般在opencv/install/lib/pkgconfig/opencv4.pc目录;
    • 2).DCMAKE_INSTALL_PREFIX指定make install时的安装目录。

3.使用pkg-config

  • 1.安装
sudo apt install pkg-config
  • 2.设置环境变量PKG_CONFIG_PATH
export
PKG_CONFIG_PATH=/home/lx/sw/opencv/install/lib/pkgconfig:$PKG_CONFIG_PATH
  • 3.查看头文件和库文件目录
# *.so directories
pkg-config --libs opencv4
# *.h directories
pkg-config --cflags opencv4
  • 4.查看OpenCV版本
 pkg-config --modversion opencv4

4.使用CMAKEGCC编译OpenCV程序

  • 1).CMakeList.txt文件

    cmake_minimum_required(VERSION 2.8)
    project( DisplayImage )
    find_package( OpenCV REQUIRED )
    include_directories( ${OpenCV_INCLUDE_DIRS} )
    

    find_packageModuleConfig两种模式,Module模式,cmake需要在cmake安装目录下的share/cmake-<version>/Modules目录和CMAKE_MODULE_PATH目录查找Find<LibraryName>.cmake,这个文件负责找到库所在的路径。若Module模式搜索失败,会启用Config模式,通过<LibraryName>Config.cmake<lower-case-package-name>-config.cmake这两个文件来引入我们需要的库。对于原生支持Cmake编译和安装的库通常会安装Config模式的配置文件到对应目录,这个配置文件直接配置了头文件库文件的路径以及各种cmake变量供find_package使用。对于OpenCVopencv/build目录下,可以看到OpenCVConfig.cmake文件。

  • 2).若find_package找不到安装的opencv
    可通过set(OpenCV_DIR /path)来指定。

    set(OpenCV_DIR /home/lx/rob/opencv-3.4.10/build)
    find_package( OpenCV 3 REQUIRED )
    INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
    

5.使OpenCV支持Nvidia GPU

前提,安装显卡驱动和cudatoolkit及cudnn模块

在Nvidia网站查找显卡算力,设置CUDA_ARCH_BIN的值

https://developer.nvidia.com/cuda-gpus
如果CUDA_ARCH_BIN参数设置有误,OpenCV可以编译通过,但使用DNN推理时会报错

File "ssd_object_detection.py", line 74, in detections = net.forward()
cv2.error: OpenCV(4.2.0) /home/a_rosebrock/opencv/modules/dnn/src/cuda/execution.hpp:52: error: (-217:Gpu API call) invalid device function in function 'make_policy'
cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_C_EXAMPLES=OFF \-D OPENCV_ENABLE_NONFREE=ON \-D WITH_CUDA=ON \-D WITH_CUDNN=ON \-D OPENCV_DNN_CUDA=ON \-D ENABLE_FAST_MATH=1 \-D CUDA_FAST_MATH=1 \-D CUDA_ARCH_BIN=7.0 \-D WITH_CUBLAS=1 \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \-D HAVE_opencv_python3=ON \-D PYTHON_EXECUTABLE=~/.virtualenvs/opencv_cuda/bin/python \-D BUILD_TIFF=ON \-D BUILD_EXAMPLES=ON ..

常见问题

  • 0. 编译C++时报错

    /usr/lib/x86_64-linux-gnu/libvtkIOImage-6.2.so.6.2: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
    

    OpenCV需要使用libtiff4ubuntu上已经舍弃,取而代之的是libtiff5-dev,所以解决这个问题的方式有两个:

    • 0)sudo apt-get install libtiff5-dev
    • 1)cmake指令后跟-DBUILD_TIFF=ON以在编译OpenCV时同时编译libtiff4
      ubuntu20.04编译OpenCV 4.4.0时验证可行。
  • 1. error while loading shared libraries
    libopencv_highgui.so.4.4: cannot open shared object file: No such file or directory

    解决方法:

    set LD_LIBRARY_ATH as pkg-config --libs opencv4
    export LD_LIBRARY_ATH="/home/lx/sw/opencv/install/lib:$LD_LIBRARY_ATH" sudo ldconfig
    

参考:
1.https://zhuanlan.zhihu.com/p/97369704
2.https://docs.opencv.org/4.5.4/d7/d9f/tutorial_linux_install.html

(一)Linux下C++ OpenCV开发环境搭建相关推荐

  1. linux 下51单片机开发环境搭建

    linux 下51单片机开发环境搭建(arch linux) 编译sdcc 软件: sdcc 命令:sdcc file.c 得到一堆文件需要( .inx) 命令: packihx file.inx & ...

  2. 阿里云服务器搭建python web环境_《Python入门》Linux 下 Python Web开发环境搭建笔记-阿里云开发者社区...

    之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,根据个 ...

  3. Python入门 Linux 下 Python Web开发环境搭建笔记

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 之前写过 ...

  4. 《Python入门》Linux 下 Python Web开发环境搭建笔记

    之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,Cen ...

  5. linux skype 接口,ubuntu /linux下skype api开发环境搭建

    1.安装Skype: 下载skype for linux,地址:http://www.skype.com/download/skype/linux/choose/ 可以下载一个ubuntu 8.10 ...

  6. Linux 下 QT 安卓开发环境搭建

    1.采用QT5.14.2,主要是安装1.jdk 2.SDK 3.NDK 三个工具包,版本要匹配上: 备注:配置SDK需要注意: 解压SDK,进入到tools目录下,运行android可执行文件,会打开 ...

  7. GCC编译器简明教程(Linux下C语言开发环境的搭建)

    GCC编译器简明教程(Linux下C语言开发环境的搭建) 市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境(例如GNOME.KDE.Unity等)和各种常用的必 ...

  8. Zynq7000开发系列-5(OpenCV开发环境搭建:Ubuntu、Zynq)

    操作系统:Ubuntu14.04.5 LTS 64bit OpenCV:OpenCV 3.1.0.opencv_contrib gcc:gcc version 4.8.4 (Ubuntu 4.8.4- ...

  9. 【Linux Mint 深度学习开发环境搭建】开发软件安装

    系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习 ...

最新文章

  1. 分布式定时任务调度系统技术选型
  2. 美团某程序员哀叹:能力很强,却因为不会“向上管理”而惨遭被裁!怎么办?...
  3. 顶象深度画像亮相GMIC,用AI提升金融反欺诈
  4. 笔记-项目质量管理-复习要点
  5. 【Python】Matplotlib太臃肿,试试Seaborn
  6. android和windows技术,《技术》android运行windows的优化与试调整
  7. 基于单片机超声波测距系统的设计_一种基于UWB技术实现的测距防撞系统
  8. 易语言word模板复制粘贴_请给你的Word“打底妆”(让Word跑快些系列)
  9. 简单工厂模式初步尝试
  10. Java基础,无许复杂语句,倒序输出整数,int i = 123;输出321
  11. PowerBuilder9 爬取酷狗网页版音乐
  12. 最齐全的宋体字体素材,速来收藏
  13. matlab maps 指北针和比例尺,R 地图绘制-比例尺与指北针
  14. 第三方登陆--狸菇凉_
  15. 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结
  16. PS油画特效插件AKVIS Artwork for mac
  17. libsvm的使用svm-scale和svm-train与svm-predict
  18. 大二第二次月赛--买水果
  19. “做产品的”,如何自我调节:一封家书,给同学们参考
  20. Oracle笔记之期末总复习

热门文章

  1. 人群与网络:搜索引擎广告位的定价
  2. bzoj 2152: 聪聪可可(树的点分治)
  3. qscoj:喵哈哈村的卢西奥
  4. SpringBoot--自动装配之Import注解以及源码分析
  5. opencv 凸包讲解和绘制
  6. python利用pygame框架实现类似大鱼吃小鱼游戏 (松鼠吃松鼠) code from making games with python and pygame
  7. samba配置过程(附网络凭据的解决方法)
  8. MySQL(一)面试集合
  9. Asp.Net 学习资源列表 [转]
  10. 使用ConnectivityManager 判断网络是否连接