• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

ELF 1技術(shù)貼 | 如何在開(kāi)發(fā)板上生成二維碼圖像

2024/05/08
2311
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

在開(kāi)發(fā)應(yīng)用程序時(shí),常常需要生成二維碼以便于用戶通過(guò)掃描快速訪問(wèn)信息。為了實(shí)現(xiàn)這一功能開(kāi)發(fā)者通常選用 QRencode 專為生成二維碼圖像設(shè)計(jì)的開(kāi)源庫(kù)。然而,要在特定平臺(tái)上使用 QRencode,需要將其進(jìn)行交叉編譯,以確保能夠在目標(biāo)平臺(tái)上正確運(yùn)行。

深入來(lái)看,QRencode庫(kù)的正常運(yùn)作依賴于兩個(gè)核心支撐庫(kù):Zlib與LibPNG。其中,Zlib作為開(kāi)放源代碼的壓縮與解壓縮庫(kù),為數(shù)據(jù)處理提供了強(qiáng)大支持;而LibPNG則用于PNG圖像格式的解析與操作,是圖像處理的關(guān)鍵環(huán)節(jié)。因此,在正式啟動(dòng)QRencode庫(kù)的交叉編譯流程之前,需先行完成對(duì)這兩個(gè)基礎(chǔ)庫(kù)——Zlib與LibPNG的交叉編譯工作。

本篇文章將以ELF 1開(kāi)發(fā)板為實(shí)例,逐步闡述如何將這三大庫(kù)——Zlib、LibPNG以及QRencode——成功移植并部署至ELF 1平臺(tái)上,解鎖在該平臺(tái)上的二維碼生成能力。

一、下載源碼

在瀏覽器復(fù)制以下鏈接跳轉(zhuǎn)后即可下載源碼

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環(huán)境中并進(jìn)行解壓
elf@ubuntu:~/work/qrencode$ tar xvf zlib-1.3.1.tar.gz

2、進(jìn)入Zlib源碼目錄內(nèi),創(chuàng)建一個(gè)zlib_INSTALL文件夾以用來(lái)放置編譯出來(lái)的文件

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

3、設(shè)置環(huán)境變量

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 進(jìn)行編譯

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

5、編譯完成,執(zhí)行make install將庫(kù)和例程等文件安裝到目標(biāo)文件下

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環(huán)境中并進(jìn)行解壓
elf@ubuntu:~/work/qrencode$ tar xvf libpng-1.6.43.tar.xz

2、進(jìn)入LibPNG源碼目錄內(nèi),創(chuàng)建一個(gè)libpng_INSTALL文件夾以用來(lái)放置編譯出來(lái)的文件:

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

3、設(shè)置環(huán)境變量

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 進(jìn)行編譯

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、編譯完成,執(zhí)行make install將庫(kù)和例程等文件安裝到目標(biāo)文件下

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環(huán)境中并進(jìn)行解壓

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

2、進(jìn)入QRencode源碼目錄內(nèi),創(chuàng)建一個(gè)qrencode_INSTALL文件夾以用來(lái)放置編譯出來(lái)的文件

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

3、設(shè)置環(huán)境變量

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 進(jìn)行編譯

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、編譯完成,執(zhí)行make install將庫(kù)和例程等文件安裝到目標(biāo)文件下

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

將以上編譯生成的所有文件拷貝到開(kāi)發(fā)板/目錄下 ,即可完成部署。

五、測(cè)試

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

-s:指定圖片大小

-o:輸出二維碼圖片名稱

可以打開(kāi)微信進(jìn)行掃一掃,掃描結(jié)果如下圖所示:

至此,就完成了QRencode庫(kù)在開(kāi)發(fā)板上的移植,即可實(shí)現(xiàn)在開(kāi)發(fā)板上生成二維碼圖像。誠(chéng)摯希望上述指南能為各位小伙伴在嵌入式開(kāi)發(fā)實(shí)戰(zhàn)中提供幫助,助力大家邁向新高度!

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
MT41K256M16TW-107:P 1 Micron Technology Inc DDR DRAM, 256MX16, 20ns, CMOS, PBGA96, FBGA-96

ECAD模型

下載ECAD模型
$8.16 查看
TLP293(GB-TPL,E 1 Toshiba America Electronic Components OPTOISOLATOR 3.75KV TRANS 4-SO

ECAD模型

下載ECAD模型
$0.64 查看
TLP291-4(TP,E) 1 Toshiba America Electronic Components Optocoupler - Transistor Output, 4 CHANNEL TRANSISTOR OUTPUT OPTOCOUPLER, ROHS COMPLIANT, SURFACE MOUNT, MINIFLAT, 11-11F1, SOP-16

ECAD模型

下載ECAD模型
$1.39 查看
恩智浦

恩智浦

恩智浦半導(dǎo)體創(chuàng)立于2006年,其前身為荷蘭飛利浦公司于1953年成立的半導(dǎo)體事業(yè)部,總部位于荷蘭埃因霍溫。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦半導(dǎo)體致力于打造全球化解決方案,實(shí)現(xiàn)智慧生活,安全連結(jié)。

恩智浦半導(dǎo)體創(chuàng)立于2006年,其前身為荷蘭飛利浦公司于1953年成立的半導(dǎo)體事業(yè)部,總部位于荷蘭埃因霍溫。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦2010年在美國(guó)納斯達(dá)克上市。恩智浦半導(dǎo)體致力于打造全球化解決方案,實(shí)現(xiàn)智慧生活,安全連結(jié)。收起

查看更多

相關(guān)推薦