wsl.ubuntu18.04上交叉编译树莓派3B+opencv4.1.2

这几天做一个项目,初步打算在树莓派上实现人脸识别,在配环境的过程中踩坑无数,特此记录一下。

前提:wsl-ubuntu18.04,树莓派3B+搭载unbuntumate18.04

  • 首先,为什么要交叉编译呢。其实一开始没打算交叉编译,想着直接在树莓派上装好opencv,但在make的时候太慢,感觉要花一天时间才能make完,同时考虑到之后编译项目代码的时候也可能很卡,所以选择交叉编译。
  • 交叉编译的主体过程主要参见这篇博客,大体操作一致。
  • 接下来就开始配置了
    • 首先是下载工具链,要根据自己的实际情况选择,我一开始直接按教程的选择,白忙了好几个小时,最后我选的是aach64-linux-gnu,下载页面
      。(建议选择深夜凌晨下载)
    • 选好后要下三个包,下完之后把三个包解压合并了。
    • 到这一步工具链就ok了
    • 然后下载opencv和opencv-contrib包,使用wget下载选用版本,我这里选的是4.1.2,然后安装依赖项(依赖这一步不清楚是不是必须)参见-直接安装opencv教程
    • 然后在opencv-4.1.2目录下mkdir release,mkdir install
    • cd release,进入cmake-gui进行配置,好了,从这一步开始问题就变多了。
    • 配置参数处注意:在最开始选择不同的工具链这里要配置的参数有的是不一样的,所以可以先按教程配置,后边make的时候若出现问题,再搜索解决。
    • 配好参数后修改CMakeCache.txt文件,然后sudo make -j8
    • 常见问题如下:
      • 选择扩展库(opencv-contrib)
      • common.cc &&类型转换问题
      • libpng neno的问题
      • boostdesc_bgm.i文件
      • include没有文件或目录
    • 小提示一下,碰到的recipe for target错误都是结果,问题的具体情况在错误的前面找,还有就是有的时候可以等一下再重新make一次就解决到错误了。
    • 最后sudo make install搞定pc机上的任务。
    • 这里搞定之后在install目录里有.so文件,这里可以提前file ……so 一下,看看是不是64bit aarch64的,如果和树莓派的配置不一样,则需要重新选择工具链了。
  • 接下来就该操作树莓派了,参见
  • 我这里传文件用的是mobaxterm,简单方便一点。
  • 把install目录下的lib和include合并成一个文件夹opencv4传到树莓派/opt下,修改动态链接库路径设置。
  • 再之后就该拿实例测试了,下一篇博客写实例测试。

你可能感兴趣的:(树莓派)