RM新时代网站-首页

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

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

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

【嵌入式編程】如何在Linux平臺安裝zint開源庫

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

? 一、zint開源庫的介紹

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

它的開源項目介紹頁面,Zint Barcode Generator download | SourceForge.net 可自行閱讀。

二、zint源碼在linux平臺下的編譯和安裝

編譯平臺介紹:

系統(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) 下載源碼

在開源頁面中下載到對應版本的zint源碼;

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

筆者下載的版本是zint-2.4.3,對應的壓縮包文件為 zint-2.4.3.tar.gz

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

2) 解壓源碼

cd /zint_src

tar –xvf zint-2.4.3.tar.gz 解壓到當前目錄

解壓完了之后,用ls看一下當前路徑,如果有zint-2.4.3文件夾生成,且里面有文件,解壓過程沒有報錯,則表示解壓成功了。

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) 開始正式編譯

mkdir build

cd build

cmake ..

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

這個時候ls一下當前目錄就會發(fā)現(xiàn)有makefile了,我們就可以使用make直接來安裝了

make install

輸入完后,會看到百分比提示了:

【筆者第一次make install報錯了,是因為windows主機和linux虛擬機之間使用了共享文件,剛好做so文件軟鏈接的時候就報錯了,如下:】

[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] 錯誤 1

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

make: *** [all] 錯誤 2

[root@localhost build]#

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

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庫就已經(jīng)安裝好了。

5) 測試zint和libzint

通過第4步后已經(jīng)完成了安裝,這個步驟我們來試一下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動態(tài)庫已經(jīng)鏈接完成。

測試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這個bin文件已經(jīng)安裝好了。

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

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

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

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304807
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

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

    關(guān)注

    88

    文章

    3614

    瀏覽量

    93686
  • zint
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    1005
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    何在低成本ARM平臺部署LVGL免費圖形,基于全志T113-i

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

    一種常用嵌入式開發(fā)代碼

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

    七大嵌入式GUI盤點

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

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

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

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

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

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

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

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

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

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

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

    如何獲取STM32MP157的嵌入式Linux的OpenGL

    請問,如何獲取STM32MP157的嵌入式Linux的OpenGL?
    發(fā)表于 05-27 07:27

    如何獲取STM32MP157的嵌入式Linux的OpenGL?

    請問,如何獲取STM32MP157的嵌入式Linux的OpenGL?
    發(fā)表于 03-15 07:21

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

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

    嵌入式軟件開發(fā)應該掌握哪些知識?

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

    高端嵌入式實驗平臺

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

    嵌入式軟件工程師常用的

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