0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【嵌入式編程】如何在Linux平臺(tái)安裝zint開(kāi)源庫(kù)

嵌入式物聯(lián)網(wǎng)開(kāi)發(fā) ? 來(lái)源:嵌入式物聯(lián)網(wǎng)開(kāi)發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開(kāi)發(fā) ? 2022-08-23 19:10 ? 次閱讀

? 一、zint開(kāi)源庫(kù)的介紹

zint 是一個(gè)開(kāi)源的條碼編碼庫(kù),它支持超過(guò)50種條碼,包括 Code-128, Data Matrix, EAN-128, UPC/EAN, ITF, QR Code, Code 16k, PDF417, MicroPDF417, LOGMARS, Maxicode, GS1 DataBar, Aztec, Composite Symbols 等等,基本上你見(jiàn)過(guò)的條碼都能用它來(lái)進(jìn)行編碼,它支持直接輸出 PNG 格式的圖像文件和位圖的字節(jié)數(shù)組。

它的開(kāi)源項(xiàng)目介紹頁(yè)面,Zint Barcode Generator download | SourceForge.net 可自行閱讀。

二、zint源碼在linux平臺(tái)下的編譯和安裝

編譯平臺(tái)介紹:

系統(tǒng)版本 :Red Hat Enterprise Linux6

Linux內(nèi)核版本:Linux localhost.localdomain 2.6.32-71.el6.i686 #1 SMP Wed Sep 1 01:26:34 EDT 2010 i686 i686 i386 GNU/Linux

gcc版本 :4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)

zint版本:zint-2.4.3

編譯步驟:

1) 下載源碼

在開(kāi)源頁(yè)面中下載到對(duì)應(yīng)版本的zint源碼;

Zint Barcode Generator - Browse /zint/2.4.3 at SourceForge.net

筆者下載的版本是zint-2.4.3,對(duì)應(yīng)的壓縮包文件為 zint-2.4.3.tar.gz

將下載的源碼放于一個(gè)新的linux的目錄下,比如/zint_src

2) 解壓源碼

cd /zint_src

tar –xvf zint-2.4.3.tar.gz 解壓到當(dāng)前目錄

解壓完了之后,用ls看一下當(dāng)前路徑,如果有zint-2.4.3文件夾生成,且里面有文件,解壓過(guò)程沒(méi)有報(bào)錯(cuò),則表示解壓成功了。

3) 閱讀編譯指南

cd zint-2.4.3

vi readme-cmake

里面的內(nèi)容如下:

how to :

mkdir build

cd build

cmake ..

make [-j nr_proc+1]

make install

4) 開(kāi)始正式編譯

mkdir build

cd build

cmake ..

執(zhí)行后這句后,成功的話就會(huì)提示 Build files have been written to: /zint_src/zint-2.4.3/build

這個(gè)時(shí)候ls一下當(dāng)前目錄就會(huì)發(fā)現(xiàn)有makefile了,我們就可以使用make直接來(lái)安裝了

make install

輸入完后,會(huì)看到百分比提示了:

【筆者第一次make install報(bào)錯(cuò)了,是因?yàn)閣indows主機(jī)和linux虛擬機(jī)之間使用了共享文件,剛好做so文件軟鏈接的時(shí)候就報(bào)錯(cuò)了,如下:】

[root@localhost build]# make install

Scanning dependencies of target zint

[ 1%] Building C object backend/CMakeFiles/zint.dir/common.c.o

[ 3%] Building C object backend/CMakeFiles/zint.dir/library.c.o

[ 5%] Building C object backend/CMakeFiles/zint.dir/render.c.o

.....[中間省略]

[ 55%] Building C object backend/CMakeFiles/zint.dir/code1.c.o

[ 57%] Building C object backend/CMakeFiles/zint.dir/gridmtx.c.o

Linking C shared library libzint.so

CMake Error: cmake_symlink_library: System Error: Operation not supported

CMake Error: cmake_symlink_library: System Error: Operation not supported

make[2]: *** [backend/libzint.so.2.4.1] 錯(cuò)誤 1

make[1]: *** [backend/CMakeFiles/zint.dir/all] 錯(cuò)誤 2

make: *** [all] 錯(cuò)誤 2

[root@localhost build]#

如果按照一開(kāi)始將源碼放于/zint_src (非主機(jī)與虛擬機(jī)的共享目錄),則可以很順利的編譯和安裝,如下:

root@localhost build]# make install

Scanning dependencies of target zint

[ 1%] Building C object backend/CMakeFiles/zint.dir/common.c.o

[ 3%] Building C object backend/CMakeFiles/zint.dir/library.c.o

[ 5%] Building C object backend/CMakeFiles/zint.dir/render.c.o

[ 7%] Building C object backend/CMakeFiles/zint.dir/ps.c.o

[ 9%] Building C object backend/CMakeFiles/zint.dir/large.c.o

[ 11%] Building C object backend/CMakeFiles/zint.dir/reedsol.c.o

.....[中間省略]

[ 53%] Building C object backend/CMakeFiles/zint.dir/code49.c.o

[ 55%] Building C object backend/CMakeFiles/zint.dir/code1.c.o

[ 57%] Building C object backend/CMakeFiles/zint.dir/gridmtx.c.o

Linking C shared library libzint.so

[ 57%] Built target zint

Scanning dependencies of target zint_frontend

[ 59%] Building C object frontend/CMakeFiles/zint_frontend.dir/main.c.o

Linking C executable zint

[ 59%] Built target zint_frontend

Scanning dependencies of target QZint

[ 61%] Building CXX object backend_qt4/CMakeFiles/QZint.dir/qzint.cpp.o

Linking CXX shared library libQZint.so

[ 61%] Built target QZint

[ 63%] Generating qrc_resources.cxx

[ 65%] Generating moc_mainwindow.cxx

[ 67%] Generating moc_datawindow.cxx

[ 69%] Generating moc_sequencewindow.cxx

[ 71%] Generating moc_exportwindow.cxx

[ 73%] Generating ui_mainWindow.h

[ 75%] Generating ui_extData.h

[ 76%] Generating ui_extSequence.h

[ 78%] Generating ui_extExport.h

Scanning dependencies of target zint-qt

[ 80%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/barcodeitem.cpp.o

[ 82%] Building CXX object frontend_qt4/CMakeFiles/zint-qt.dir/main.cpp.o

[ 84%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/mainwindow.cpp.o

[ 86%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/datawindow.cpp.o

[ 88%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/sequencewindow.cpp.o

[ 90%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/exportwindow.cpp.o

[ 92%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/moc_mainwindow.cxx.o

[ 94%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/moc_datawindow.cxx.o

[ 96%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/moc_sequencewindow.cxx.o

[ 98%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/moc_exportwindow.cxx.o

[100%] Building CXX object

frontend_qt4/CMakeFiles/zint-qt.dir/qrc_resources.cxx.o

Linking CXX executable zint-qt

[100%] Built target zint-qt

Install the project...

-- Install configuration: "RelWithDebInfo"

-- Installing: /usr/share/cmake/Modules/FindZint.cmake

-- Installing: /usr/local/lib/libzint.so.2.4.1

-- Installing: /usr/local/lib/libzint.so.2.4

-- Installing: /usr/local/lib/libzint.so

-- Installing: /usr/local/include/zint.h

-- Installing: /usr/local/bin/zint

-- Installing: /usr/local/lib/libQZint.so.2.4.1

-- Installing: /usr/local/lib/libQZint.so.2.4

-- Installing: /usr/local/lib/libQZint.so

-- Installing: /usr/local/include/qzint.h

-- Installing: /usr/local/bin/zint-qt

到這里zint庫(kù)就已經(jīng)安裝好了。

5) 測(cè)試zint和libzint

通過(guò)第4步后已經(jīng)完成了安裝,這個(gè)步驟我們來(lái)試一下zint和libzint如下:

先看下libzint是否安裝成功,

[root@localhost build]# ls -al /usr/local/lib/libzint.so

lrwxrwxrwx. 1 root root 14 10月 16 17:20 /usr/local/lib/libzint.so ->

libzint.so.2.4

則正是zint動(dòng)態(tài)庫(kù)已經(jīng)鏈接完成。

測(cè)試zint 如下:

在終端輸入 zint –h

[liluchang@localhost src]$ zint -h

Zint version 2.4.1

Encode input data in a barcode and save as a PNG, EPS or SVG file.

-h, --help Display this message.

-t, --types Display table of barcode types

-i, --input=FILE Read data from FILE.

-o, --output=FILE Write image to FILE. (default is out.png)

-d, --data=DATA Barcode content.

-b, --barcode=NUMBER Number of barcode type (default is 20 (=Code128)).

--height=NUMBER Height of symbol in multiples of x-dimension.

-w, --whitesp=NUMBER Width of whitespace in multiples of x-dimension.

--border=NUMBER Width of border in multiples of x-dimension.

--box Add a box.

--bind Add boundary bars.

-r, --reverse Reverse colours (white on black).

--fg=COLOUR Specify a foreground colour.

--bg=COLOUR Specify a background colour.

--scale=NUMBER Adjust size of output image.

--directpng Send PNG output to stdout

--directeps Send EPS output to stdout

--directsvg Send SVG output to stdout

--dump Dump binary data to stdout

--rotate=NUMBER Rotate symbol (PNG output only).

--cols=NUMBER (PDF417) Number of columns.

--vers=NUMBER (QR Code) Version

--secure=NUMBER (PDF417 and QR Code) Error correction level.

--primary=STRING (Maxicode and Composite) Structured primary message.

--mode=NUMBER (Maxicode and Composite) Set encoding mode.

--gs1 Treat input as GS1 data

--binary Treat input as Binary data

--notext Remove human readable text

--square Force Data Matrix symbols to be square

--init Create reader initialisation symbol (Code 128)

--smalltext Use half-size text in PNG images

--batch Treat each line of input as a separate data set

error: No data received, no symbol generated

[liluchang@localhost src]$

能看到版本信息,證明zint這個(gè)bin文件已經(jīng)安裝好了。

至此zint和libzint的安裝已全部結(jié)束,筆者在安裝的過(guò)程中,幾乎使用的默認(rèn)路徑,感興趣的童鞋可以試著修改一些自定義的安裝路徑,可以定制化自己的zint和libzint。

本章介紹到此結(jié)束,下一篇將介紹如何使用libzint生成二維碼,敬請(qǐng)關(guān)注。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18974

    瀏覽量

    302065
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11210

    瀏覽量

    208721
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3565

    瀏覽量

    93536
  • zint
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    998
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,嵌入式系統(tǒng)在各個(gè)領(lǐng)域扮演著越來(lái)越重要的角色。Linux因其開(kāi)源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)的首選操作系統(tǒng)。 1. 硬件選擇 在配置
    的頭像 發(fā)表于 11-06 10:22 ?136次閱讀

    何在低成本ARM平臺(tái)部署LVGL免費(fèi)圖形庫(kù),基于全志T113-i

    本帖最后由 Tronlong創(chuàng)龍科技 于 2024-10-29 10:39 編輯 LVGL簡(jiǎn)介 LVGL(Littlev Graphics Library)是一個(gè)開(kāi)源的圖形庫(kù),主要用于嵌入式
    發(fā)表于 10-29 09:55

    一種常用嵌入式開(kāi)發(fā)代碼庫(kù)

    使用開(kāi)源協(xié)議:GPL-2.0varch簡(jiǎn)介varch(we-architecture,意為我們的框架庫(kù))是嵌入式C語(yǔ)言常用代碼模塊庫(kù),包含了嵌入式
    的頭像 發(fā)表于 09-04 08:06 ?364次閱讀
    一種常用<b class='flag-5'>嵌入式</b>開(kāi)發(fā)代碼<b class='flag-5'>庫(kù)</b>

    七大嵌入式GUI盤(pán)點(diǎn)

    提供商業(yè)技術(shù)支持,同時(shí)也繼續(xù)提供開(kāi)源版本。MiniGUI為嵌入式Linux系統(tǒng)提供了完整的多進(jìn)程支持;可以MiniGUI-Processes、MiniGUI-Threads或者
    發(fā)表于 09-02 10:58

    嵌入式linux開(kāi)發(fā)的基本步驟有哪些?

    之前,首先需要選擇合適的硬件平臺(tái)。硬件選擇需要考慮以下幾個(gè)方面: 1.1 處理器 嵌入式Linux開(kāi)發(fā)需要一個(gè)處理器,常見(jiàn)的處理器有ARM、MIPS、PowerPC等。選擇處理器時(shí),需要考慮處理器的性能、功耗、成本等因素。 1.
    的頭像 發(fā)表于 09-02 09:11 ?345次閱讀

    嵌入式linux開(kāi)發(fā)板怎么操作

    嵌入式Linux開(kāi)發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)。它通常包括一個(gè)處理器、內(nèi)存、存儲(chǔ)器、輸入/輸出接口等硬件組件,以及一
    的頭像 發(fā)表于 09-02 09:09 ?305次閱讀

    嵌入式linux開(kāi)發(fā)板芯片的工作原理

    了處理器、存儲(chǔ)器、輸入/輸出接口等硬件資源的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)。它通常采用Linux操作系統(tǒng)作為底層軟件平臺(tái),提供了豐富的開(kāi)發(fā)工具和庫(kù)函數(shù),方便開(kāi)發(fā)者進(jìn)行
    的頭像 發(fā)表于 09-02 09:07 ?302次閱讀

    專(zhuān)家力薦|《嵌入式系統(tǒng)原理與開(kāi)發(fā)——基于RISC-V和Linux系統(tǒng)》新書(shū)發(fā)售

    當(dāng)前,嵌入式系統(tǒng)已成為智能設(shè)備的核心之一,RISC-V+Linux開(kāi)源力量為嵌入式系統(tǒng)注入強(qiáng)大的創(chuàng)新動(dòng)力。作為中國(guó)RISC-V軟硬件生態(tài)領(lǐng)導(dǎo)者,賽昉科技與業(yè)界專(zhuān)家合作推出《
    的頭像 發(fā)表于 07-24 08:20 ?494次閱讀
    專(zhuān)家力薦|《<b class='flag-5'>嵌入式</b>系統(tǒng)原理與開(kāi)發(fā)——基于RISC-V和<b class='flag-5'>Linux</b>系統(tǒng)》新書(shū)發(fā)售

    如何提升嵌入式編程能力?

    如何提升嵌入式編程能力? 要提升嵌入式編程的能力,可以從以下幾點(diǎn)學(xué)習(xí): 1. 理解硬件:熟悉你正在編程的硬件
    發(fā)表于 06-21 10:01

    如何獲取STM32MP157的嵌入式Linux的OpenGL庫(kù)

    請(qǐng)問(wèn),如何獲取STM32MP157的嵌入式Linux的OpenGL庫(kù)?
    發(fā)表于 05-27 07:27

    如何獲取STM32MP157的嵌入式Linux的OpenGL庫(kù)?

    請(qǐng)問(wèn),如何獲取STM32MP157的嵌入式Linux的OpenGL庫(kù)
    發(fā)表于 03-15 07:21

    嵌入式人工智能的就業(yè)方向有哪些?

    網(wǎng)絡(luò)編程開(kāi)發(fā)及實(shí)戰(zhàn)下 數(shù)據(jù)庫(kù)開(kāi)發(fā) Linux應(yīng)用開(kāi)發(fā)綜合實(shí)戰(zhàn) 三:嵌入式Linux系統(tǒng)工程師,Linuxkernel工程師,
    發(fā)表于 02-26 10:17

    嵌入式軟件開(kāi)發(fā)應(yīng)該掌握哪些知識(shí)?

    和 Thumb 模式的區(qū)別,以及 ARM Cortex 系列處理器的特性。 嵌入式 ARM 開(kāi)發(fā):學(xué)習(xí)如何在嵌入式系統(tǒng)中使用 ARM 處理器進(jìn)行開(kāi)發(fā),包括交叉編譯工具鏈的配置、裸機(jī)編程
    發(fā)表于 02-19 11:23

    高端嵌入式實(shí)驗(yàn)平臺(tái)

    微處理器、內(nèi)存芯片組、閃存芯片組和電源管理電路,擴(kuò)展板則由嵌入式硬件接口、板載功能和擴(kuò)展功能模塊組成。 軟件提供嵌入式主流Andriod和Linux雙系統(tǒng)軟件包,開(kāi)放的資源滿足教學(xué)、科研、創(chuàng)新等應(yīng)用,并提成配套實(shí)驗(yàn)教程。 該
    的頭像 發(fā)表于 01-29 09:55 ?481次閱讀
    高端<b class='flag-5'>嵌入式</b>實(shí)驗(yàn)<b class='flag-5'>平臺(tái)</b>

    嵌入式軟件工程師常用的

    最近我換工作了,看見(jiàn)不同嵌入式軟件工程師用的平臺(tái)都不一樣,所以我整理了一下。PlatformIO:多平臺(tái)支持:PlatformIO支持多種嵌入式平臺(tái)
    的頭像 發(fā)表于 12-24 08:00 ?614次閱讀
    <b class='flag-5'>嵌入式</b>軟件工程師常用的