opencv3.2.0移植Hi3559完整总结版

本文详述了在Ubuntu 16.04.5 LTS上,使用aarch64-himix100-linux交叉编译工具链,将OpenCV3.2.0移植到Hi3559AV100平台的过程。内容包括:环境准备,交叉编译链的检查与安装,glib及其依赖库libffi和zlib的交叉编译,OpenCV的配置与编译,以及人脸检测代码的编译与运行。遇到的错误如找不到-lgthread-2.0和-lglib-2.0,通过交叉编译解决。最后,将编译生成的库和测试程序部署到目标设备上运行。
摘要由CSDN通过智能技术生成

移植环境

交叉编译平台:Ubuntu 16.04.5 LTS

交叉编译工具链:aarch64-himix100-linux

移植平台:Hi3559AV100

由于编译环境是在实验室的电脑中,没有root用户权限,因此所有所需的工具和库都没有使用apt-get工具安装,同时也可能存在一些已经安装好的依赖库,若在移植过程中出现找不到所需工具或相关依赖库的情况,并且本文没有提及的,请自行查阅相关资料或以类似方法安装。

源码下载

解释:

1、glib是opencv的依赖库,也需要进行交叉编译,否则会在opencv交叉编译时报错

/opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../lib/gcc/aarch64-linux-gnu/6.3.0/../../../../aarch64-linux-gnu/bin/ld: cannot find -lgthread-2.0
/opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../lib/gcc/aarch64-linux-gnu/6.3.0/../../../../aarch64-linux-gnu/bin/ld: cannot find -lglib-2.0

2、ffi是glib中gobject的依赖库

3、zlib是glib中gio的依赖库

交叉编译链的安装

确保系统中已经安装了相应的交叉编译链,直接在shell中输出交叉编译链的名称查看是否自动补全

若未安装请自行查看相关手册安装对应的交叉编译链

glib的交叉编译

1、交叉编译libffi

# 解压源码包
tar -xvf libffi-3.2.1.tar.gz
cd libffi-3.2.1
#创建输出文件夹
mkdir output
#设置交叉编译工具链
CC=aarch64-himix100-linux-gcc 
#执行./configure生成Makefile, prefix是输出目录,注意改成自己的
./configure --prefix=/home/sdc/yuwy/opencv/output-3559 --host=aarch64-himix100-linux 

make
make install
#生成的so文件在output/lib64里
#添加路径到pkg-config中,glib编译时才能读取
export PKG_CONFIG_PATH=/home/sdc/yuwy/opencv/output-3559/lib/pkgconfig

pkg-config --cflags libffi
pkg-config --libs libffi

2、交叉编译zlib

#解压缩
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11.tar.gz
mkdir output
#执行./configure命令生成Makefile,注意将prefix目录替换成自己的输出目录
export CC=aarch64-himix100-linux-gcc 

./configure --prefix=/home/sdc/yuwy/opencv/output-3559

make 
make install

export PKG_CONFIG_PATH=/home/sdc/yuwy/opencv/output-3559/lib/pkgconfig

pkg-config --cflags zlib
pkg-config --libs zlib

3、交叉编译glib

回到根目录解压缩glib源码包

tar -xvf glib-2.47.3.tar.gz
cd glib-2.47.3
mkdir output

之后需要新建一个配置文件

vim glib.cache

写入

glib_cv_long_long_format=ll
glib_cv_stack_grows=no
glib_cv_have_strlcpy=no
glib_cv_have_qsort_r=yes
glib_cv_has__inline=yes
glib_cv_working_bcopy=no
glib_cv_va_val_copy=yes
glib_cv_uscore=no
glib_cv_rtldglobal_broken=no
ac_cv_func_posix_getpwuid_r=yes
ac_cv_func_posix_getgrgid_r=yes

执行./configure命令生成Makefile,注意将prefix目录替换成自己的输出目录

CC=aarch64-himix100-linux-gcc 
./configure --prefix=/home/sdc/yuwy/opencv/output-3559 --host=aarch64-himix100-linux --cache-file=glib.cache

接下来需要修改三个Make

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值