Skip to content

LV050-zbar简介

一、ZBar 简介

1. 简介

ZBar条形码阅读器是一个开源软件,适用于读取不同来源的条形码,如视频流、图像文件和原始强度传感器。它支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128,Code 39, Codabar, Interleaved 2/5和二维码。包括在库是解码捕获的条形码图像和图像的基本应用程序,使用视频设备(如网络摄像头)作为条形码扫描仪。对于开发者,支持语言绑定包括C、C++、Python和Perl,以及用于Qt、GTK和PyGTK的GUI小部件。

2. 相关资料

官网在这里:ZBar bar code reader

GitHub仓库:ZBar/ZBarmchehab/zbar

3. 下载源码

这里有两个版本:ZBar/ZBar 仓库的 Release 0.10 · ZBar/ZBar(新的版本没有configure文件了,要自己生成,我试了一下,没那么容易,很多问题要解决,也可能是我太菜了)、mchehab/zbar 仓库的版本,它有个ftp网址 Index of /downloads/zbar 可以下栽,这里我选当前最新的:zbar-0.23.tar.gz

image-20260106202024084

解压后可以得到如下文件:

image-20250114192348457

说明:

(1)并不是所有的版本下载下来之后都直接有configure文件,有些版本是没有的,需要自己生成,但是自己生成又总是有一堆的问题,不如选直接带有configure的版本。

(2)关于0.10版本,在网上可能会在这几个地方找到0.10版本的源码:

html
linuxtv:https://linuxtv.org/downloads/zbar/zbar-0.10.tar.bz2
sourceforge:https://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.bz2/download
GitHub:https://github.com/ZBar/ZBar/releases/tag/0.10

只有 sourceforge 中下载的带有configure文件,其他两个都没有,我自己折腾生成configure文件的时候不是这里报错就是那里报错的,就感觉很麻烦,不如选择带有 configure 文件的,如果一定要用0.10版本的话,可以用以下命令下载:

shell
wget https://jaist.dl.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.bz2

二、ZBar移植

1. 编译源码

  • 创建安装目录
shell
mkdir -p /home/sumu/9arm-linux-lib/zbar-0.23/zbar_out
  • 配置编译选项
shell
./configure --host=arm-linux-gnueabihf --prefix=/home/sumu/9arm-linux-lib/zbar-0.23/zbar_out --enable-static --without-python --without-imagemagick --without-jpeg --without-gtk --without-qt --disable-video --without-dbus
  • 编译
shell
make
  • 安装
shell
make install

安装完毕后,我们会得到下面的文件:

image-20250114193315087

会发现也有两个软链接,拷贝的时候需要注意一下。我们可以使用以下命令看一下生成的库的格式是否是对的:

shell
file libzbar.so.0.3.0
image-20250114200732802

2. 拷贝到共享目录

拷贝到共享目录的目的是编译的时候用。

shell
cp -avf ~/9arm-linux-lib/zbar-0.23/zbar_out ~/1sharedfiles/linux_develop/imx6ull-app-demo/lib/zbar-0.23
cd ~/1sharedfiles/linux_develop/imx6ull-app-demo/lib/zbar-0.23/lib
cp libzbar.so.0.3.0 libzbar.so
cp libzbar.so.0.3.0 libzbar.so.0

3. 移植到开发板

这里我们直接从ubuntu挂载的根文件系统,所以直接拷贝即可。

shell
# 这个命令在ubuntu中执行
cp -avf ~/9arm-linux-lib/zbar-0.23/zbar_out/lib/* /home/sumu/4nfs/imx6ull_rootfs/lib

拷贝完毕后检查一下软链接:

shell
# 这个命令在串口终端执行
ls -alh /usr/lib/libzbar*
image-20250114194031032