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

交叉编译aarch64的Qt5.12.2,附带Mysql插件编译

一、配置交叉编译工具链

1、交叉编译工具链目录

/opt/zlg/m3568-sdk-v1.0.0-ga/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin/aarch64-rockchip-linux-gnu-g++
/opt/zlg/m3568-sdk-v1.0.0-ga/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin/aarch64-rockchip-linux-gnu-gcc

2、编辑bashrc

vi ~/.bashrc,在末尾添加

export PATH=/opt/zlg/m3568-sdk-v1.0.0-ga/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin:$PATH
export CROSS_COMPILE=aarch64-rockchip-linux-gnu-

使用source ~/.bashrc来使得修改生效。

二、配置mkspecs

进入目录

/home/zfadmin/Qt5.12.2_src_arm/qt-everywhere-src-5.12.2/qtbase/mkspecs

复制一份使用rockchip的平台

cp -r linux-aarch64-gnu-g++ linux-aarch64-rockchip-gnu

其中linux-aarch64-rockchip-gnu/qmake.conf的内容如下

#
# qmake configuration for building with aarch64-rockchip-linux-gnu-g++
#MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC                = aarch64-rockchip-linux-gnu-gcc
QMAKE_CXX               = aarch64-rockchip-linux-gnu-g++
QMAKE_LINK              = aarch64-rockchip-linux-gnu-g++
QMAKE_LINK_SHLIB        = aarch64-rockchip-linux-gnu-g++# modifications to linux.conf
QMAKE_AR                = aarch64-rockchip-linux-gnu-ar cqs
QMAKE_OBJCOPY           = aarch64-rockchip-linux-gnu-objcopy
QMAKE_NM                = aarch64-rockchip-linux-gnu-nm -P
QMAKE_STRIP             = aarch64-rockchip-linux-gnu-strip
load(qt_config)

三、编译Qt

稍后再单独编译mysql插件

进入主目录,执行如下:

./configure -opensource -confirm-license -nomake tests -nomake examples -release -no-opengl \
-platform linux-g++ -xplatform linux-aarch64-rockchip-gnu \
-prefix /home/zfadmin/armqt-5.12.2_2
make -j8
make install

在armqt-5.12.2_2生成了Qt可执行文件和相关库文件

四、编译Qt的Mysql插件

1、修改mysql.pro

进入目录/home/zfadmin/Qt5.12.2_src_arm/qt-everywhere-src-5.12.2/qtbase/src/plugins/sqldrivers/mysql

编辑mysql.pro文件,其中openssl是在编译Mysql库的时候使用的:

TARGET = qsqlmysql
SOURCES += $$PWD/qsql_mysql.cpp
HEADERS += $$PWD/qsql_mysql_p.h# 包含路径和库路径
INCLUDEPATH += /home/zfadmin/mySQLArmv8Install/include /home/zfadmin/openssl1.0.0_install/include
LIBS += -L/home/zfadmin/mySQLArmv8Install/lib -lmysqlclient
LIBS += -L/home/zfadmin/openssl1.0.0_install/lib -lssl -lcrypto# 线程和其他系统库
LIBS += -lpthread -lm -lrt -ldl# 插件特定配置
QT += sql
CONFIG += plugin
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin# qsqldriverbase.pri 是Qt内部使用的,用于设置基本的SQL驱动配置
include(../qsqldriverbase.pri)

2、qmake

使用刚编译出来的qmake

/home/zfadmin/armqt-5.12.2_2/bin/qmake

3、make及make install

make -j4

make install 

可在/home/zfadmin/armqt-5.12.2_2/plugins/sqldrivers 中看到libqsqlmysql.so

http://www.lryc.cn/news/402688.html

相关文章:

  • 好用的Ubuntu下的工具合集[持续增加]
  • Xcode 16 beta3 真机调试找不到 Apple Watch 的尝试解决
  • Three.JS 使用RGBELoader和CubeTextureLoader 添加环境贴图
  • k8s logstash多管道配置
  • 【CMU博士论文】结构化推理增强大语言模型(Part 0)
  • Odoo创建一个自定义UI视图
  • Day16_集合与迭代器
  • html2canvas + jspdf 纯前端HTML导出PDF的实现与问题
  • 【JVM】JVM调优练习-随笔
  • 如何解决 CentOS 7 官方 yum 仓库无法使用
  • 分布式唯一id的7种方案
  • 嵌入式物联网在医疗行业中的应用——案例分析
  • C语言 底层逻辑详细阐述指针(一)万字讲解 #指针是什么? #指针和指针类型 #指针的解引用 #野指针 #指针的运算 #指针和数组 #二级指针 #指针数组
  • 【人工智能大模型】文心一言介绍以及基本使用指令
  • AI绘画入门实践|Midjourney 的模型版本
  • Web3时代的教育技术革新:智能合约在学习管理中的应用
  • 云计算实训室的核心功能有哪些?
  • 芯科科技第五届物联网开发者大会走进世界各地,巡回开启注册
  • Python创建Excel表和读取Excel表的基础操作
  • JVM(day2)经典垃圾收集器
  • 华为od机试真题 — 分披萨(Python)
  • ubuntu22.04 安装boost
  • 基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)
  • C语言 ——— 输入两个正整数,求出最小公倍数
  • Langchain 对pdf,word,txt等不同文件的加载解析
  • BL201分布式I/O耦合器连接Profinet网络
  • Pycharm 报错 Environment location directory is not empty 解
  • 【Android】Intent基础用法及作用
  • Web开发:ASP.NET CORE的后端小结(基础)
  • 侧开知识点合集2