Uno: Introducción
Este reconocimiento de código QR se basa en zbar + opencv, la plataforma de desarrollo es ubuntu18.04 y la plataforma de ejecución de archivos es Hisi3516.
Debido a que el archivo compilado final se ejecuta bajo la arquitectura ARM, los archivos de biblioteca relacionados y los programas de ejecución deben compilarse de forma cruzada.
Dos: construcción del entorno de desarrollo Hisi3516
tar -xzvf arm-himix100-linux.tgz
cd arm-himix100-linux
chmod +x ./arm-himix100-linux.install
./arm-himix100-linux.install
Después de ejecutar el comando anterior, encontrará que las siguientes variables de entorno se guardan en el archivo "/ etc / profile":
export PATH="/opt/hisi-linux/x86-arm/arm-himix100-linux/bin:$PATH"
Tres: compilación cruzada de zbar
1. Obtenga el código fuente de zbar y descomprímalo
Cree un archivo compilado para almacenar la salida del archivo
2. Configuración
./configure --prefix=$PWD/../output --host=arm-himix100-linux --enable-shared=yes --disable-video --without-imagemagick --without-gtk --without-qt --without-python
3. Compilar
make && make install
4. Configure pkg-config
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/jun/tools/zbar/output/lib/pkgconfig
pkg-config --libs --cflags zbar
Cuatro: compilación cruzada de bibliotecas relacionadas con opencv
La compilación del código fuente de Opencv se basa en algunas bibliotecas de terceros, así que primero compile estas bibliotecas de terceros. El punto clave: coloque los archivos compilados de estas bibliotecas de terceros en una ruta para facilitar la posterior compilación de opencv. Mi ruta unificada es: / inicio / 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
La compilación de libpng depende de la biblioteca 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
Cuatro: compilación cruzada de opencv
1. Obtenga la biblioteca de código fuente opencv y descomprímalo y cree dos carpetas de compilación (utilizadas para crear la configuración) y salida (archivos compilados por opencv)
2. Ingrese al directorio bulid y ejecute "cmake-gui"
Busque CMAKE_BUILD_TYPE, cambie el valor de esta clave a Release, busque CMAKE_INSTALL_PREFIX y cambie el valor de esta clave a la carpeta de salida en el directorio de origen, como se muestra en la siguiente figura:
Verifique los módulos que necesita, como se muestra a continuación, necesita compilar la biblioteca estática y finalmente haga clic en "Generar" para generar el Makefile
3. Cierre cmake y vuelva a la ruta de opencv.
make
make install
4. Configure 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