OpenCV交叉编译

配置开发环境,下载opencv

  • 使用下方命令安装cmake
    sudo apt-get install cmake cmake-qt-gui cmake-curses-gui

  • 使用下方命令下载opencv源码

1
2
3
4
5
wget https://github.com/opencv/opencv/archive/refs/tags/4.12.0.zip
unzip 4.12.0.zip

wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.12.0.zip
unzip 4.12.0.zip

配置Cmake

配置编译工具链

  • 首先创建build文件夹,存放中间编译文件,以及install目录,用来做库的安装路径
  • 输入cmake-gui命令,进入cmake配置界面,如下图所示,配置源代码路径和编译目录,点击configure来配置编译器

配置opencv编译选项

  • CMAKE_EXE_LINKER_FLAGS 设置 -lpthread -ldl -lrt,这个并不知道重不重要
  • OPENCV_ENABLE_NONFREE 勾选,勾选后即可编译contrib库
  • OPENCV_EXTRA_MODULES_PATH,这里记录的是contrib库modules文件夹的位置,不填写的话勾选上面的也没用
  • CMAKE_INSTALL_PREFIX,填写install文件夹的位置,x86建议默认的usr/local
  • 选择WITH_V4l=ON,WITH_QUIRC=ON,WITH_ONNX=ON,ZLIB=ON以适配摄像头、二维码和onnx模型的支持
  • 之后可以取消勾选一些不需要的内容,比如WITH_TIFF等

如果没有V4L支持,请按图片做

其他配置项

如果出现ADE库下载错误

  • 可以手动下载按下面的路径放置,就可以编译通过
1
2
3
4
wget https://github.com/opencv/ade/archive/v0.1.2e.zip

build/3rdparty/ade/ade-0.1.2e/sources/ade/source/*.cpp
build/3rdparty/ade/ade-0.1.2e/sources/ade/include/ade/*.hpp

fatal error: boostdesc_bgm.i: No such file or directory

https://github.com/opencv/opencv_contrib/issues/1301

进入build目录,使用make -j12编译

编译完成,使用make install安装