当前位置: 首页 > ai >正文

【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= CROSSCOMPILEgccexportAR={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= CROSSCOMPILEgccexportAR={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.xdnf.cn/news/14589.html

相关文章:

  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DrinkWater(喝水记录组件)
  • DeepSeek中的提示库及其用法示例
  • 用于算法性能预测的 GNN 框架
  • H5新增属性
  • Three.js 中自定义 UV 坐标贴图详解
  • Java数据结构第二十四期:探秘 AVL 树,当二叉搜索树学会 “自我调节”
  • 华为云 Flexus+DeepSeek 征文|增值税发票智能提取小工具:基于大模型的自动化信息解析实践
  • 计算机操作系统(十六)进程同步
  • 安全版V4.5密码加密算法由SM3改为MD5
  • 使用Windows自带的WSL安装Ubuntu Linux系统
  • SQLite FTS4全文搜索实战指南:从入门到优化
  • Java基础(三):逻辑运算符详解
  • 【技术分享】XR技术体系浅析:VR、AR与MR的区别、联系与应用实践
  • 从语言到生态:编程语言在各行业的应用格局与未来演进
  • 考研408《计算机组成原理》复习笔记,第三章(1)——存储系统概念
  • CMCC RAX3000M nand版 OpenWrt 可用空间变小的恢复方法
  • redis相关面试题
  • 使用模板创建uniapp提示未关联uniCloud问题
  • vscode+react+ESLint解决不引入组件,vscode不会报错的问题
  • 小孙学变频学习笔记(四)变频器的逆变器件—IGBT管(下)
  • linux 远程终端执行qt应用显示到接入的物理显示器上
  • 如何仅用AI开发完整的小程序<5>—让AI制作开始页面
  • C++ Programming Language —— 第2章:数据类型
  • C#.NET HttpClient 使用教程
  • 【Dicom标准】dicom数据中pixelData显示处理流程详细介绍
  • Linux 服务器运维:磁盘管理与网络配置
  • 一个免费的视频、音频、文本、图片多媒体处理工具
  • ICM-20948 Wake on Motion功能开发全过程(8)
  • Python 的内置函数 hash
  • python模块常用语法sys、traceback、QApplication