Hisi3516二维码识别(一):交叉编译zbar+opencv

一:简介

本次二维码识别是基于zbar+opencv实现,开发平台为ubuntu18.04,文件执行平台为Hisi3516。

因为最终编译的文件是在ARM架构下执行,所以相关库文件和执行程序都需要交叉编译

二:Hisi3516开发环境搭建

tar -xzvf arm-himix100-linux.tgz
cd arm-himix100-linux
chmod +x ./arm-himix100-linux.install
./arm-himix100-linux.install

执行完上述命令会发现在“/etc/profile”文件下保存有如下环境变量:

export PATH="/opt/hisi-linux/x86-arm/arm-himix100-linux/bin:$PATH"

三:zbar交叉编译

1、获取zbar源码并解压

创建编译后的文件存放文件output

2、配置

./configure --prefix=$PWD/../output --host=arm-himix100-linux --enable-shared=yes --disable-video   --without-imagemagick --without-gtk --without-qt  --without-python

3、编译

make && make install

4、配置pkg-config

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/jun/tools/zbar/output/lib/pkgconfig
pkg-config --libs --cflags zbar

四:opencv相关库交叉编译

opencv的源码编译依赖一些三方库,那么首先来编译这些三方库,重点:将这些三方库编译后的文件统一放到一个路径下,方便后面opencv的编译,我的统一路径为:/home/jun/hisifile

1、libz

CC=arm-himix100-linux-gcc AR=arm-himix100-linux-ar RANLIB=arm-himix100-linux-ranlib ./configure --prefix=/home/jun/hisifile --shared
make
make install

2、libjpeg

./configure --host=arm-himix100-linux --prefix=/home/jun/hisifile --enable-shared --enable-static
make 
make install

3、libpng

libpng的编译依赖于zlib库

./configure --prefix=/home/jun/hisifile  LIBS=-L/home/jun/hisifile/lib CPPFLAGS=-I/home/jun/hisifile/include --host=arm-himix100-linux --enable-shared --enable-static
make 
make install

4、yasm

CC=arm-himix100-linux-gcc ./configure --host=arm-himix100-linux --prefix=/home/jun/hisifile --enable-shared --disable-asm
make
make install

5、libx264

CC=arm-himix100-linux-gcc ./configure --host=arm-himix100-linux --prefix=/home/jun/hisifile --enable-shared --disable-asm
make
make install

6、libxvid

cd build/generic
./configure --host=arm-himix100-linux --prefix=/home/jun/hisifile --disable-assembly
make 
make install

7、ffmpeg

./configure --prefix=/home/jun/hisifile --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-himix100-linux-gcc --enable-swscale --extra-ldflags=-L/home/jun/hisifile/lib  --extra-cflags=-I/home/jun/hisifile/include
make
make install

四:opencv交叉编译

1、获取opencv源码库解压并创建两个文件夹build(用于创建配置)和output(opencv编译后的文件)

2、进入bulid目录执行“cmake-gui”

搜索CMAKE_BUILD_TYPE,将这个键的值改成Release,搜索CMAKE_INSTALL_PREFIX,将这个键的值改成源码目录下的output文件夹,如下图所示:

勾选自己需要的模块,如下图需要编译静态库,最后点击“Generate”生成Makefile文件

3、关闭cmake,返回opencv路径

make
make install

4、配置pkg-config

vim /etc/ld.so.conf
将目录/home/jun/tools/opencv/opencv-3.2.0/output/lib添加到文件末尾
ldconfig -v
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/jun/tools/opencv/opencv-3.2.0/output/lib/pkgconfig
pkg-config --libs --cflags opencv

猜你喜欢

转载自blog.csdn.net/qq_34968572/article/details/112978917
今日推荐