VirtualBox Ubuntu 22.04 配置 OpenCV C++版本

标题:VirtualBox Ubuntu 22.04 配置 OpenCV C++版本

VirtualBox 安装 Ubuntu22.04(只含踩坑点)

安装增强模式

安装增强模式依赖

  •   sudo apt-get install build-essential gcc make perl dkms
    

安装增强模式

  • 第一步:

    VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第1张图片

  • 第二步:在第一步后会出现一个挂载盘如图 VBox_GAs:
    VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第2张图片

  • 验证:增强模式安装成功后如下图:

    VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第3张图片

共享文件夹配置(此文件夹用于 Windows 与虚拟机之间文件传输,不建议当成普通文件夹使用,以免出现权限导致的各种问题)

  • 共享文件夹自动挂载配置:

    • 设置如图,路径为 Windows 中的随意一个文件夹:

      VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第4张图片

    • 修改共享文件夹的权限,重启:

      •   sudo usermod -a -G vboxsf lm-rui
          reboot
        
  • 共享文件夹手动挂载+开机自启:

    • 挂载代码如下:

      •   sudo mount -t vboxsf D:/Oracle/share /media/sf_share
        
    • 开机自启文件为(将挂载代码加入):

      •   vim /etc/rc.local
        

Ubuntu OpenCV 前置依赖安装

sudo apt install -y g++ make wget unzip
sudo apt install -y libssl-dev build-essential
sudo apt install -y pkg-config

CMake 安装

方法一

sudo apt-get install -y cmake

方法二

  • 下载最新源码包:https://cmake.org/download/

    VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第5张图片

  • 进入 cmake 目录

  • # 执行
    ./bootstrap
    # 编译构造
    make
    # 安装
    sudo make install
    # 检查
    cmake --version
    

下载 OpenCV

  • 下载最新源码包:Releases - OpenCV

    VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第6张图片

下载 OpenCV 依赖:

更换镜像源:

  • 打开镜像源配置文件

    • sudo gedit /etc/apt/sources.list
      
  • 复制以下配置信息到上面

    • # 阿里源
      deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
      
  • 更新镜像源:

    • sudo apt-get update
      sudo apt-get upgrade
      

更换镜像源报错(无报错跳过此步)

  • 报错信息:由于没有公钥,无法验证下列签名

    在这里插入图片描述

  • 添加公匙 40976EAF437D05B53B4FE6ACC0B21F32

    •   sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32
      
    • 根据报错,缺少的公匙都添加上,再重复一次更换镜像源。

下载依赖:

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

编译安装 OpenCV

创建编译文件夹

cd /目录/opencv-4.6.0
mkdir -p build
cd build

执行编译预处理

cmake -DCMAKE_BUILD_TYPE=Release \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local ..

编译

sudo make -j 4
  • 数字代表使用线程数,越大性能要求越高,由于使用虚拟机,设置太高存在卡死可能(若线程数太接近虚拟机设置的线程数)。

    • 一般一核等于两线程:

      VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第7张图片

编译报错(无报错跳过此步)

VirtualBox Ubuntu 22.04 配置 OpenCV C++版本_第8张图片

  • 原因:OpenCV 的编译文件夹在 Windows 下。
  • 解决方法:将 OpenCV 源码包放到 Linux 系统下,删掉 buile 文件夹下所有文件,从编译预处理开始重新进行操作。

安装

sudo make install

环境配置

  • 打开文件:

    •   sudo gedit /etc/ld.so.conf.d/opencv.conf
      
    • 写入:/usr/local/lib

  • 更新系统共享链接库:

    •   sudo ldconfig
      
  • 打开bashrc文件:

    •   sudo gedit /etc/bash.bashrc
      
    • 写入:PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

  • 更新:

    •   source /etc/bash.bashrc
      
  • 验证:

    •   pkg-config --modversion opencv4
      

      在这里插入图片描述

特别鸣谢:室友 路飞 DoD 的参考教程支持,还是踩了一些坑,难受。

安装完不会用?点它->Ubuntu22.04 VScode 安装与 OpenCV C++配置

你可能感兴趣的:(ubuntu,opencv,c++)