当前位置:   article > 正文

Linux下交叉编译opencv以及错误解决_error: [makefile.debug:461: debug/opencv_carnumber

error: [makefile.debug:461: debug/opencv_carnumber1.o

Linux下交叉编译opencv

1、下载opencv源码

下载地址:https://opencv.org/releases/

选择你需要的版本,点击Sources。
在这里插入图片描述
将源码放在ubuntu随便一个目录下并解压
在这里插入图片描述
进入解压好的opencv目录,创建两个文件夹build和install:
在这里插入图片描述

2、cmake-gui配置:

首先打开cmake-gui,若没有,请使用sudo apt-get install安装、
在这里插入图片描述
圆圈处填上opencv源码路径,矩形处填刚刚创建的build路径。
在这里插入图片描述
点击configure
在这里插入图片描述
这两个地方和我选一样的
在这里插入图片描述
Target System →Operating System 填写Linux (L大写,填入其他如:linux-arm,后面configure会出现错误);
Compliers → C and Complier → C++填入对应交叉编译工具链gcc和g++路径;
Target Root: 交叉编译工具链bin目录路径
Finish; 无报错
交叉编译工具自行下载,网上一堆教程。
在这里插入图片描述配置结束就是这样
在这里插入图片描述
在cmake-gui中取消勾选WITH_1394
然后把这个位置换成刚刚创建的install目录:
在这里插入图片描述

3、开始编译

进入build目录,使用sudo make -j4开始编译,这个过程很漫长。。。
在这里插入图片描述
在这里插入图片描述
报错:
在这里插入图片描述
往上翻发现:
在这里插入图片描述
修改这个文件:
在这里插入图片描述
加上这一行,保存、退出,
#define HAVE_PTHREAD
make clean一下,再重新编译
在这里插入图片描述
新错误:
在这里插入图片描述
修改方法:
进入报错文件:
在这里插入图片描述
加上图中这一句:
加上这一行,保存、退出,
make clean一下,再重新编译
在这里插入图片描述
新错误:
在这里插入图片描述
解决方法:
进入${HOME}/opencv-3.3.14/3rdparty/libpng/pngpriv.h
将这一段代码

# if (defined(ARM_NEON) || defined(__ARM_NEON)) && */
  • 1

改成

# if defined(PNG_ARM_NEON) && (defined(ARM_NEON) || defined(__ARM_NEON)) && \
  • 1

编译成功:
在这里插入图片描述

4、安装:

在build下面继续执行make install:
在这里插入图片描述
进入install目录查看:
在这里插入图片描述
出现以上文件表示编译成功!

5、编译安装opencv扩展库:

先将opencv_contrib-4.5.2,版本和你编译的opencv版本要一样.

img

找到 OPENCV_EXTRA_MODULES_PATH 项,选择扩展库源码 opencv_contrib目录下的 modules 目录

点击 Configure ,生成配置

点击 Generate ,生成 Makefile

make -j8
make install
  • 1
  • 2

生成的扩展库会在install/lib目录下。

6、移植到嵌入式设备上:

将编译好的install文件夹放在板子的任意位置

打开 /etc/ld.so.conf文件

vi /etc/ld.so.conf
  • 1

添加库的绝对路径,例如:

/usr/install/lib
  • 1

保存并退出

生效路径

ldconfig
  • 1

大功告成!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/522462
推荐阅读
相关标签
  

闽ICP备14008679号