zbar-0.10 交叉编译

zbar cross compile

    • 下载地址
    • 编译环境
    • 编译配置
    • 其他

下载地址

http://sourceforge.mirrorservice.org/z/zb/zbar/zbar/0.10/
http://zbar.sourceforge.net/可能由于某些原因,编写这篇文章时无法打开。

编译环境

Ubuntu 18.04.3 LTS

编译配置

假设:

  • 交叉编译工具:arm-linux-
    使用的交叉编译工具版本信息如下:
    Target: arm-linux-gnueabi
    Configured with: --target=arm-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --disable-nls --enable-clocale=gnu --enable-libgomp --disable-libitm --enable-poison-system-directories 
    Thread model: posix
    gcc version 6.3.0 
    
  • 交叉编译结果安装目录:/home/user/cross-compile/

配置及编译:

  1. 设置环境变量:
    export NM=arm-himix200-linux-nm

  2. 设置编译参数:
    ./configure --prefix=/home/user/cross-compile/zbar --host=arm-linux --enable-shared --without-gtk --without-python --without-qt --without-imagemagick --disable-video CC=arm-linux-gcc CXX=arm-linux-g++
    –prefix:指定安装目录
    –host:指定目标主机类型
    –enable-shared:编译生成.so动态库
    –enable-static:编译生成.a静态库

  3. 编译,执行make
    编译ZBar时,可能提示如下错误。

    In file included from /usr/include/stdio.h:937:0,
                  from zbar/debug.h:60,
                  from zbar/scanner.c:34:
    /usr/include/x86_64-linux-gnu/bits/stdio2.h:140:1: error: expected identifier or ‘(’ before ‘{’ token
    

    解决方法:
    export CFLAGS=""
    将CFLAGS环境变量置为空,然后重新 ./configure,再make,则会成功。

  4. 安装编译结果,make install

其他

zxing和zbar的比较,可以参考:https://mp.weixin.qq.com/s/_I8GgmRcuntYlVteSmRRDg

你可能感兴趣的:(cross,compile)