Un: Introduction
Cette reconnaissance de code QR est basée sur zbar + opencv, la plate-forme de développement est ubuntu18.04 et la plate-forme d'exécution de fichiers est Hisi3516.
Étant donné que le fichier compilé final est exécuté sous l'architecture ARM, les fichiers de bibliothèque et les programmes d'exécution associés doivent être compilés de manière croisée
Deux: Construction de l'environnement de développement Hisi3516
tar -xzvf arm-himix100-linux.tgz
cd arm-himix100-linux
chmod +x ./arm-himix100-linux.install
./arm-himix100-linux.install
Après avoir exécuté la commande ci-dessus, vous constaterez que les variables d'environnement suivantes sont enregistrées sous le fichier "/ etc / profile":
export PATH="/opt/hisi-linux/x86-arm/arm-himix100-linux/bin:$PATH"
Trois: compilation croisée zbar
1. Obtenez le code source de zbar et décompressez-le
Créer un fichier compilé pour stocker la sortie du fichier
2. Configuration
./configure --prefix=$PWD/../output --host=arm-himix100-linux --enable-shared=yes --disable-video --without-imagemagick --without-gtk --without-qt --without-python
3. Compilez
make && make install
4. Configurez pkg-config
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/jun/tools/zbar/output/lib/pkgconfig
pkg-config --libs --cflags zbar
Quatre: compilation croisée de bibliothèques liées à opencv
La compilation du code source d'Opencv repose sur certaines bibliothèques tierces, alors compilez d'abord ces bibliothèques tierces. Le point clé: mettez les fichiers compilés de ces bibliothèques tierces dans un seul chemin pour faciliter la compilation opencv ultérieure. Mon chemin unifié est: / 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
La compilation de libpng dépend de la bibliothèque 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
Quatre: compilation croisée OpenCV
1. Obtenez la bibliothèque de code source opencv et décompressez-la et créez deux dossiers build (utilisé pour créer la configuration) et sortie (fichiers compilés par opencv)
2. Entrez dans le répertoire bulid et exécutez "cmake-gui"
Recherchez CMAKE_BUILD_TYPE, remplacez la valeur de cette clé par Release, recherchez CMAKE_INSTALL_PREFIX et remplacez la valeur de cette clé par le dossier de sortie sous le répertoire source, comme illustré dans la figure suivante:
Vérifiez les modules dont vous avez besoin, comme indiqué ci-dessous, vous devez compiler la bibliothèque statique, et enfin cliquez sur "Générer" pour générer le Makefile
3. Fermez cmake et revenez au chemin opencv
make
make install
4. Configurez 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