LV40-01-二维码识别-02-ZBar简介
什么是ZBar?怎么移植?若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
PC端开发环境 | Windows | Windows11 |
Ubuntu | Ubuntu20.04.6的64位版本(一开始使用的是16.04版本,后来进行了升级) | |
VMware® Workstation 17 Pro | 17.0.0 build-20800274 | |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) | |
Win32DiskImager | Win32DiskImager v1.0 | |
Linux开发板环境 | Linux开发板 | 正点原子 i.MX6ULL Linux 阿尔法开发板 |
uboot | NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03) | |
linux内核 | linux-4.15(NXP官方提供) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | https://www.arm.com/ | ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档 |
https://www.nxp.com.cn/ | NXP官方网站 | |
https://www.nxpic.org.cn/ | NXP 官方社区 | |
https://u-boot.readthedocs.io/en/latest/ | u-boot官网 | |
https://www.kernel.org/ | linux内核官网 |
点击查看相关文件下载
分类 | 网址 | 说明 |
NXP | https://github.com/nxp-imx | NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库 |
https://elixir.bootlin.com/linux/latest/source | 在线阅读linux kernel源码 | |
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
I.MX6ULL | i.MX 6ULL Applications Processors for Industrial Products | I.MX6ULL 芯片手册(datasheet,可以在线查看) |
i.MX 6ULL Applications ProcessorReference Manual | I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网) |
一、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/ZBar、mchehab/zbar
3. 下载源码
这里有两个版本:ZBar/ZBar 仓库的 Release 0.10 · ZBar/ZBar(新的版本没有configure文件了,要自己生成,我试了一下,没那么容易,很多问题要解决,也可能是我太菜了)、mchehab/zbar 仓库的版本,它有个ftp网址 Index of /downloads/zbar 可以下栽,这里我选当前最新的:zbar-0.23.tar.gz;
解压后可以得到如下文件:
说明:
(1)并不是所有的版本下载下来之后都直接有configure文件,有些版本是没有的,需要自己生成,但是自己生成又总是有一堆的问题,不如选直接带有configure的版本。
(2)关于0.10版本,在网上可能会在这几个地方找到0.10版本的源码:
1
2
3 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版本的话,可以用以下命令下载:
1 wget https://jaist.dl.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.bz2
二、ZBar移植
1. 编译源码
- 创建安装目录
1 | mkdir -p /home/sumu/9arm-linux-lib/zbar-0.23/zbar_out |
- 配置编译选项
1 | ./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 |
- 编译
1 | make |
- 安装
1 | make install |
安装完毕后,我们会得到下面的文件:
会发现也有两个软链接,拷贝的时候需要注意一下。我们可以使用以下命令看一下生成的库的格式是否是对的:
1 | file libzbar.so.0.3.0 |
2. 拷贝到共享目录
拷贝到共享目录的目的是编译的时候用。
1 | cp -avf ~/9arm-linux-lib/zbar-0.23/zbar_out ~/1sharedfiles/linux_develop/imx6ull-app-demo/lib/zbar-0.23 |
3. 移植到开发板
这里我们直接从ubuntu挂载的根文件系统,所以直接拷贝即可。
1 | 这个命令在ubuntu中执行 |
拷贝完毕后检查一下软链接:
1 | 这个命令在串口终端执行 |