本帖最后由 风精灵 于 2024-5-10 09:01 编辑

   在开发应用程序,经常需要生成二维码以便于快速扫描访问信息。为了实现这一功能,我们可以使用 qrencode 库。qrencode 是一个开源的库,用于生成二维码图像。然而,要在特定平台上使用 qrencode,需要将其进行交叉编译,以确保它能够在目标平台上正确运行。
        qrencode 库本身依赖于 zlib 库和 libpng 库。zlib 是一个用于数据压缩和解压缩的开源库,而 libpng 是一个处理 png 图像格式的库。因此,在交叉编译 qrencode 库之前,我们需要先交叉编译这两个依赖库。
       下面以ELF1开发板为例,讲解如何移植这三个库到ELF1开发板上。

一、下载源码
zlib-1.3.1.tar.gz: zlib 主站点
qrencode-4.1.1.tar.gz: libqrencode (fukuchi.org)

二、交叉编译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

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:输出二维码图片名称
可以打开微信进行扫一扫,扫描结果如下图所示:
图片1.png 图片3.png
移植到这里就结束啦。小伙伴们学会了吗?

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.