【RK3568 嵌入式linux QT開發筆記】 二維碼開源庫 libqrencode 交叉靜態編譯和使用

本文參考文章:https://blog.csdn.net/qq_41630102/article/details/108306720
參考文章有些地方描述的有疏漏,導致筆者學習過程中,編譯的.a文件無法在RK3568平臺運行,故寫本文做了修正,以下僅是自我學習的筆記,沒有寫的很詳細。

一:下載軟件包

https://download.csdn.net/download/qq_41630102/12781129

二:編譯

2.1編譯zlib

參考文章:https://blog.csdn.net/qq_41630102/article/details/108306720

2.2編譯 libpng

export CROSS_COMPILE=aarch64-buildroot-linux-gnu-
export CC= C R O S S C O M P I L E g c c e x p o r t A R = {CROSS_COMPILE}gcc export AR= CROSSC?OMPILEgccexportAR={CROSS_COMPILE}ar

export PATH=/opt/atk-dlrk356x-toolchain/usr/bin:$PATH
./configure --prefix=/home/alientek/QT_PRO/QRCODE/b/libpng-1.6.17/compile_dir/ --host=aarch64-buildroot-linux-gnu CC=aarch64-buildroot-linux-gnu-gcc AR=aarch64-buildroot-linux-gnu-ar LIBS=-L/home/alientek/QT_PRO/QRCODE/zlib-1.2.11/compile CPPFLAGS=-I/home/alientek/QT_PRO/QRCODE/zlib-1.2.11/compile

make && make install

2.3編譯 libqrencode

export CROSS_COMPILE=aarch64-buildroot-linux-gnu-
export CC= C R O S S C O M P I L E g c c e x p o r t A R = {CROSS_COMPILE}gcc export AR= CROSSC?OMPILEgccexportAR={CROSS_COMPILE}ar

export PATH=/opt/atk-dlrk356x-toolchain/usr/bin:$PATH

./configure --prefix=/home/alientek/QT_PRO/QRCODE/qrencode-3.4.4/compile_dir/ --host=aarch64-buildroot-linux-gnu CC=aarch64-buildroot-linux-gnu-gcc AR=aarch64-buildroot-linux-gnu-ar --enable-static --disable-shared CPPFLAGS=-I/home/alientek/QT_PRO/QRCODE/b/libpng-1.6.17/compile_dir/include LDFLAGS=-L/home/alientek/QT_PRO/QRCODE/b/libpng-1.6.17/compile_dir/lib

make && make install

三、QT中使用

3.1將.a文件和.h文件放在QT目錄中

在這里插入圖片描述

3.2修改QT 的 .pro文件

加入

INCLUDEPATH += $$PWD/qrencode_rk
DEPENDPATH += $$PWD/qrencode_rk
LIBS += -L$$PWD/qrencode_rk -lqrencode

在這里插入圖片描述

3.3 使用qrencode庫(代碼示例)

#include "w004_choose_auth_mode.h"
#include "ui_w004_choose_auth_mode.h"
#include <qrencode.h>
#include <QPainter>
#include <QPixmap>w004_choose_auth_mode::w004_choose_auth_mode(QWidget *parent): QWidget(parent), ui(new Ui::w004_choose_auth_mode)
{ui->setupUi(this);QLabel *bgLabel = new QLabel(this);bgLabel->setPixmap(QPixmap(":/image/background/004.png"));bgLabel->setScaledContents(true); // 圖片自適應縮放bgLabel->lower(); // 置于底層generateQR("QR TEST");
}w004_choose_auth_mode::~w004_choose_auth_mode()
{delete ui;
}void w004_choose_auth_mode::on_pushButton_language_clicked()
{emit btnpush(4,100);  // 發射返回信號
}void w004_choose_auth_mode::generateQR(QString text )
{if (text.isEmpty()) return;// 生成二維碼數據QRcode *qrCode = QRcode_encodeString(text.toUtf8(), 2, QR_ECLEVEL_Q, QR_MODE_8, 1);if (!qrCode) return;// 轉換為 QImageint scale = 5;  // 縮放因子int imgSize = qrCode->width * scale;QImage image(imgSize, imgSize, QImage::Format_RGB32);image.fill(Qt::white);QPainter painter(&image);painter.setPen(Qt::NoPen);painter.setBrush(Qt::black);// 繪制二維碼模塊for (int y = 0; y < qrCode->width; y++) {for (int x = 0; x < qrCode->width; x++) {if (qrCode->data[y * qrCode->width + x] & 1) {painter.drawRect(x * scale, y * scale, scale, scale);}}}// 顯示到 QLabelui->label_qrcode->setPixmap(QPixmap::fromImage(image));QRcode_free(qrCode);  // 釋放內存
}

3.4 測試結果

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85981.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git本地裸倉庫的“激活”:在同一臺 Linux 服務器上創建工作區

大家好&#xff01;在之前的文章中&#xff0c;我們探討了 Git 裸倉庫&#xff08;Bare Repository&#xff09;的概念&#xff0c;它是沒有工作目錄&#xff0c;只包含 .git 目錄內容的特殊倉庫格式&#xff0c;非常適合作為中心化的代碼集散地或備份。我們也了解了 git clone…

如何排查在docker中運行軟件的故障:Docker故障排查可視化指南,三招鎖定問題根源

很多剛接觸Docker的朋友常覺得故障排查很神秘。其實只需關注CPU、內存、磁盤這三大資源指標&#xff01;Linux終端雖強大但不夠直觀&#xff0c;下面教你用可視化工具輕松監控&#xff1a; 一、宿主機全局監控&#xff1a;FinalShell 掌控全局 連接宿主機 打開FinalShell&…

【論文筆記】【強化微調】T-GRPO:對視頻數據進行強化微調

tulerfeng/Video-R1: Video-R1: Reinforcing Video Reasoning in MLLMs [&#x1f525;the first paper to explore R1 for video] 1. 引述 在強化微調中&#xff0c;像 GRPO、DAPO 這樣的方法都是對文本或者圖片進行微調思考&#xff0c;所以這類微調方法不對時序信息做處理&…

【Unity】動畫系統

0 前言 早些時間學動畫系統時的筆記&#xff0c;實際還沒學完&#xff0c;后續計劃會慢慢補全吧。 1 動畫 通常來說動畫都是動畫師來做的&#xff0c;不過Unity也能實現簡單的動畫效果。PS&#xff1a;官方文檔中&#xff0c;將動畫稱之為動畫剪輯。 1.1 創建動畫 首先在Unit…

C++二級指針的用法指向指針的指針(多級間接尋址)

指向指針的指針是一種多級間接尋址的形式&#xff0c;或者說是一個指針鏈。 指針的指針就是將指針的地址存放在另一個指針里面。 通常&#xff0c;一個指針包含一個變量的地址。當我們定義一個指向指針的指針時&#xff0c;第一個指針包含了第二個指針的地址&#xff0c;第二個…

【格與代數系統】示例

【格與代數系統】格與代數系統匯總 例1 設是由誘導的代數系統&#xff0c;則其上的二元運算滿足&#xff08;ABCD&#xff09; A. B. C. D. 代數系統滿足交換律、冪等律、吸收律、結合律 例2 是&#xff08;ABCD&#xff09; A.有界格 有界格&#xff1a;有最大、最小元…

Stable Diffusion 項目實戰落地:手機壁紙制作-第一篇 從零基礎到生成藝術品的第一步!

大家好!歡迎來到《StableDiffusion實戰-手機壁紙制作》系列的第一篇! 在這一篇文章里,我們將一起探索如何用StableDiffusion(SD)這款強大的工具,快速制作出炫酷的手機壁紙。 如果你對生成藝術、AI繪圖感興趣,那你一定不能錯過! 你能做什么?你將做什么! 在之前的系…

WEB3開啟 Hardhat 自動驗證有什么意義

這是個非常好的問題&#xff0c;尤其是你在學習 Web3 后端開發時&#xff0c;理解為什么要啟用 Hardhat 自動驗證合約源碼&#xff0c;會讓你開發流程更完整、更專業。 ? 一句話總結&#xff1a; 開啟 Hardhat 自動驗證的意義是&#xff1a;讓你的合約在區塊鏈瀏覽器&#xff…

Qt窗?的學習(一)

Qt窗?是通過QMainWindow類來實現的。 QMainWindow是?個為??提供主窗?程序的類&#xff0c;繼承?QWidget類&#xff0c;并且提供了?個預定義的 布局。QMainWindow包含?個菜單欄&#xff08;menubar&#xff09;、多個?具欄(toolbars)、多個浮動窗?&#xff08;鉚 接部…

C++ 面試題常用總結 詳解(滿足c++ 崗位必備,不定時更新)

&#x1f4da; 本文主要總結了一些常見的C面試題&#xff0c;主要涉及到語法基礎、STL標準庫、內存相關、類相關和其他輔助技能&#xff0c;掌握這些內容&#xff0c;基本上就滿足C的崗位技能&#xff08;紅色標記為重點內容&#xff09;&#xff0c;歡迎大家前來學習指正&…

git提交的腳本無執行權限怎么辦

問題描述 自己寫的小項目&#xff0c;沒有在服務器安裝 Jenkins 進行項目部署&#xff0c;為了圖方便&#xff0c;在項目中編寫了一個 deploy.sh 腳本文件用來執行項目部署。但是在服務器上 pull 下來之后發現腳本文件沒有執行權限&#xff0c;通過 chmod 命令進行賦權&#x…

004.chromium編譯進階-啟動時傳入cookies

一、目標&#xff1a; 實現傳入參數--set-cookies[{"domain":"https://baidu.com","name":"AAAA","value":"111"},{"domain":"https://baidu.com","name":"BBB","…

【數據庫復習】

數據庫復習題 一、填空題1&#xff0e;數據庫系統一般由&#xff08;數據庫&#xff09;、應用系統、&#xff08;數據庫管理系統&#xff09;、&#xff08;數據庫管理員&#xff09;和用戶構成。2&#xff0e;數據模型通常由&#xff08;數據結構&#xff09;、&#xff08;數…

微信小程序:選擇頁面單選實現(多頁面均可選擇)

一、效果展示 1、主頁面 展示了兩個選擇行 2、選擇頁面 根據傳遞的參數決定員工展示的數據,并且單選,可將數據傳遞給主頁面 二、主頁面實現 1、視圖層 寫入了采購員和庫管員的行選擇信息 <view class="item flex flex-between"><view class="i…

使用docker-compose搭建redis-cluster集群

前言 如果你也因為centos的gcc版本落后導致redis編譯安裝不通過而煩惱&#xff0c;大可以試一試用docker去搭建redis集群。本文以單節點搭建redis-cluster三主三從為例。 ip&#xff1a;192.168.0.10redis信息&#xff1a; 客戶端連接端口&#xff1a;7001 -7006集群間通信端…

【LLaMA-Factory 實戰系列】二、WebUI 篇 - Qwen2.5-VL 多模態模型 LoRA 微調保姆級教程

【LLaMA-Factory 實戰系列】二、WebUI 篇 - Qwen2.5-VL 多模態模型 LoRA 微調保姆級教程 1. 引言1.1 為什么選擇 Qwen2.5-VL-3B-Instruct&#xff1f;1.2 環境要求 2. 環境搭建2.1 安裝 LLaMA-Factory2.2 驗證安裝 3. 數據集準備與配置3.1 數據集結構3.2 數據格式3.3 數據集聲明…

風險矩陣與灰色綜合評價

一、風險矩陣&#xff08;Risk Matrix&#xff09; 1. 定義與原理 定義&#xff1a;風險矩陣是一種通過二維網格&#xff08;可能性 vs. 后果嚴重程度&#xff09;可視化展示風險等級的工具&#xff0c;用于優先級排序和決策支持。核心要素&#xff1a; 橫軸&#xff08;X軸&…

谷歌瀏覽器電腦版官方下載- Google Chrome官方網頁版入口

谷歌瀏覽器&#xff08;Google Chrome&#xff09;是一款由谷歌公司開發的免費網頁瀏覽器&#xff0c;自2008年首次發布以來&#xff0c;迅速成為全球最受歡迎的瀏覽器之一。它以簡潔的界面設計、快速的瀏覽速度和強大的安全性能而聞名。谷歌瀏覽器支持多種操作系統&#xff0c…

垂直電商供應鏈平臺:重構產業生態,驅動數字化增長

垂直電商供應鏈平臺&#xff1a;重構產業生態&#xff0c;驅動數字化增長 在電商行業競爭日益激烈的當下&#xff0c;垂直電商供應鏈平臺憑借對細分領域的深度聚焦與數字化能力&#xff0c;成為產業升級的關鍵引擎。本文圍繞垂直電商供應鏈平臺的架構、價值及生態構建展開&…

VSCode 插件 Remote - SSH:開啟高效遠程開發之旅

在當今的軟件開發領域&#xff0c;遠程開發已經成為了一種越來越流行的工作方式。無論是分布式團隊協作&#xff0c;還是需要在不同環境中進行開發&#xff0c;遠程開發都能為開發者帶來極大的便利。而 VSCode 的 Remote - SSH 插件&#xff0c;就是一款能夠幫助開發者實現高效…