加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

ELF 1技术贴 | 如何在开发板上生成二维码图像

05/08 08:45
2847
阅读需 12 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在开发应用程序时,常常需要生成二维码以便于用户通过扫描快速访问信息。为了实现这一功能开发者通常选用 QRencode 专为生成二维码图像设计的开源库。然而,要在特定平台上使用 QRencode,需要将其进行交叉编译,以确保能够在目标平台上正确运行。

深入来看,QRencode库的正常运作依赖于两个核心支撑库:Zlib与LibPNG。其中,Zlib作为开放源代码的压缩与解压缩库,为数据处理提供了强大支持;而LibPNG则用于PNG图像格式的解析与操作,是图像处理的关键环节。因此,在正式启动QRencode库的交叉编译流程之前,需先行完成对这两个基础库——Zlib与LibPNG的交叉编译工作。

本篇文章将以ELF 1开发板为实例,逐步阐述如何将这三大库——Zlib、LibPNG以及QRencode——成功移植并部署至ELF 1平台上,解锁在该平台上的二维码生成能力。

一、下载源码

在浏览器复制以下链接跳转后即可下载源码

Zlib-1.3.1.tar.gz(https://zlib.net/)  
LibPNG-1.6.43.tar.xz(https://www.linuxfromscratch.org/blfs/view/svn/general/libpng.html)

QRencode-4.1.1.tar.gz(https://fukuchi.org/works/qrencode/)

二、交叉编译Zlib
1、将zlib-1.3.1.tar.gz 源码拷贝到Ubuntu环境中并进行解压
elf@ubuntu:~/work/qrencode$ tar xvf zlib-1.3.1.tar.gz

2、进入Zlib源码目录内,创建一个zlib_INSTALL文件夹以用来放置编译出来的文件

elf@ubuntu:~/work/qrencode$ cd zlib-1.3.1
elf@ubuntu:~/work/qrencode/zlib-1.3.1$ mkdir zlib_INSTALL

3、设置环境变量

elf@ubuntu:~/work/qrencode/zlib-1.3.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

4、生成Makefile, make 进行编译

elf@ubuntu:~/work/qrencode/zlib-1.3.1$./configure --prefix=$(pwd)/zlib_INSTALL
elf@ubuntu:~/work/qrencode/zlib-1.3.1$ make

5、编译完成,执行make install将库和例程等文件安装到目标文件下

elf@ubuntu:~/work/qrencode/zlib-1.3.1$ make install
elf@ubuntu:~/work/qrencode/zlib-1.3.1$ ls zlib_INSTALL/
include  lib  share
三、交叉编译LibPNG
1、将libpng-1.6.43.tar.xz 源码拷贝到Ubuntu环境中并进行解压
elf@ubuntu:~/work/qrencode$ tar xvf libpng-1.6.43.tar.xz

2、进入LibPNG源码目录内,创建一个libpng_INSTALL文件夹以用来放置编译出来的文件:

elf@ubuntu:~/work/qrencode$ cd libpng-1.6.43
elf@ubuntu:~/work/qrencode/libpng-1.6.43$ mkdir libpng_INSTALL

3、设置环境变量

elf@ubuntu:~/work/qrencode/libpng-1.6.43$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

4、生成Makefile,make 进行编译

elf@ubuntu:~/work/qrencode/libpng-1.6.43$./configure --prefix=$(pwd)/libpng_INSTALL --host=arm
elf@ubuntu:~/work/qrencode/libpng-1.6.43$ make

5、编译完成,执行make install将库和例程等文件安装到目标文件下

elf@ubuntu:~/work/qrencode/libpng-1.6.43$ make install
elf@ubuntu:~/work/qrencode/libpng-1.6.43$ ls libpng_INSTALL/
bin  include  lib  share
四、交叉编译QRencode

1、将qrencode-4.1.1.tar.gz 源码拷贝到Ubuntu环境中并进行解压

elf@ubuntu:~/work/qrencode$ tar xvf qrencode-4.1.1.tar.gz

2、进入QRencode源码目录内,创建一个qrencode_INSTALL文件夹以用来放置编译出来的文件

elf@ubuntu:~/work/qrencode$ cd qrencode-4.1.1
elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ mkdir qrencode_INSTALL

3、设置环境变量

elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ export png_CFLAGS="-I/home/elf/work/qrencode/libpng-1.6.43/include/libpng16 -I/home/elf/work/qrencode/libpng-1.6.43/include -I/home/elf/work/qrencode/zlib-1.3.1/include"
elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ export png_LIBS="-L/home/elf/work/qrencode/libpng-1.6.43/lib -lpng16 -L/home/elf/work/qrencode/libpng-1.6.43/include -I/home/elf/work/qrencode/zlib-1.3.1/lib -lz -lm"

4、生成Makefile,make 进行编译

elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ ./configure --enable-static --disable-shared --prefix=$(pwd)/qrencode-4.1.1_INSTALL --host=arm
elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ make

5、编译完成,执行make install将库和例程等文件安装到目标文件下

elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ make install
elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ ls qrencode_INSTALL/
bin  include  lib  share

将以上编译生成的所有文件拷贝到开发板/目录下 ,即可完成部署。

五、测试

root@ELF1:~# qrencode -s 25 -o test.png Hello-ElfBoard

-s:指定图片大小

-o:输出二维码图片名称

可以打开微信进行扫一扫,扫描结果如下图所示:

至此,就完成了QRencode库在开发板上的移植,即可实现在开发板上生成二维码图像。诚挚希望上述指南能为各位小伙伴在嵌入式开发实战中提供帮助,助力大家迈向新高度!

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
ASDMB-20.000MHZ-LC-T 1 Abracon Corporation MEMS OSC XO 20.0000MHZ LVCMOS

ECAD模型

下载ECAD模型
$1.94 查看
CPC1510GSTR 1 IXYS Corporation Transistor Output SSR, 1-Channel, 3750V Isolation, SURFACE MOUNT PACKAGE-6
$2.3 查看
LTC6906HS6#TR 1 Linear Technology LTC6906 - Micropower, 10kHz to 1MHz Resistor Set Oscillator in SOT-23; Package: SOT; Pins: 6; Temperature Range: -40°C to 125°C
暂无数据 查看
恩智浦

恩智浦

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。收起

查看更多

相关推荐

电子产业图谱