qt-everywher交叉编译e-src-5.15.2
简化配置的方式:
你完全可以通过直接配置 安装目录、编译链 和 目标架构 来完成交叉编译,而不需要修改 mkspecs 配置。以下是如何通过简化配置来进行交叉编译 Qt 的步骤。
- 准备交叉编译工具链
首先,确保你已经安装了交叉编译工具链,例如针对 ARM 架构的工具链(如 aarch64-linux-gnu)。如果是 ARM 64-bit 系统,通常使用 aarch64-linux-gnu-g++ 和 aarch64-linux-gnu-gcc。
可以使用以下命令安装工具链(以 Ubuntu 为例):
bash
复制代码
sudo apt update
sudo apt install g+±aarch64-linux-gnu
2. 配置 Qt
解压 qt-everywhere-src-5.15.2.tar.xz 后,进入 Qt 源码目录。
2.1 配置 Qt 的交叉编译
使用 ./configure 配置 Qt 进行交叉编译。你可以不涉及 mkspecs 目录,直接通过命令行配置编译链、目标架构和安装目录。假设你的目标系统是 ARM 64-bit,交叉编译工具链为 aarch64-linux-gnu-g++,并且目标设备的根文件系统路径为 /path/to/arm-sysroot。
./configure \-prefix /path/to/qt-install-arm \-opensource \-confirm-license \-release \-nomake examples \-nomake tests \-xplatform linux-arm64-g++ \-sysroot /path/to/arm-sysroot \-device linux-arm64 \-device-option CROSS_COMPILE=aarch64-linux-gnu- \-no-opengl
配置项的说明:
-prefix /path/to/qt-install-arm:指定编译完成后安装 Qt 库和工具的路径。
-opensource:选择开源版本的 Qt。
-confirm-license:同意 Qt 开源许可证。
-release:编译发布版本。
-nomake examples 和 -nomake tests:跳过编译示例程序和测试,减少编译时间。
-xplatform linux-arm64-g++:指定交叉编译平台为 ARM 64-bit。
-sysroot /path/to/arm-sysroot:指定目标设备的根文件系统路径,使编译时能够使用目标系统的头文件和库。
-device linux-arm64:指定目标设备架构为 ARM 64-bit。
-device-option CROSS_COMPILE=aarch64-linux-gnu-:告诉 Qt 使用交叉编译工具链的前缀。
-no-opengl:禁用 OpenGL,若目标设备不支持硬件加速 OpenGL 时使用。
- 编译 Qt
配置完成后,执行 make 命令进行编译:
make -jKaTeX parse error: Expected 'EOF', got '#' at position 10: (nproc) #̲ 使用多核 CPU 提高编译速…(nproc) 会自动使用你的 CPU 核心数来并行编译,提高编译效率。make install 会将编译好的 Qt 库和工具安装到你指定的 -prefix 路径。
- 部署到目标 ARM 设备
完成 Qt 编译后,你需要将 Qt 安装目录复制到目标 ARM 设备。你可以使用 scp 或其他方法将 Qt 安装目录复制到目标设备上:
scp -r /path/to/qt-install-arm orangepi_user@<orangepi_ip>:~/qt-install
然后,确保目标设备的环境变量正确配置。你可以在目标设备的 ~/.bashrc 或 ~/.profile 中添加以下内容:
export PATH=$PATH:/path/to/qt-install-arm/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/qt-install-arm/lib
然后执行:source ~/.bashrc
这样,目标设备就能找到并使用新安装的 Qt 工具链和库。
简化的交叉编译配置总结
通过简化配置,交叉编译 Qt 的关键步骤就是:
工具链准备:安装并确认交叉编译工具链。
配置 Qt:通过 ./configure 指定安装目录、编译链、目标架构等,不涉及 mkspecs 目录。
编译 Qt:使用 make 编译并安装 Qt。
部署到目标设备:将 Qt 安装到目标设备并配置环境变量。
相关文章:
qt-everywher交叉编译e-src-5.15.2
简化配置的方式: 你完全可以通过直接配置 安装目录、编译链 和 目标架构 来完成交叉编译,而不需要修改 mkspecs 配置。以下是如何通过简化配置来进行交叉编译 Qt 的步骤。 准备交叉编译工具链 首先,确保你已经安装了交叉编译工具链ÿ…...
4.STM32通信接口之SPI通信(含源码)---硬件SPI与W25Q64存储模块通信实战《精讲》
开胃简介 根据上一节对STM32的SPI介绍!本节将进行硬件SPI的实现,片选用软件实现!跟着Whappy走起!W25Q64的驱动层,我们不需要更改,仅仅需要更改一下SPI的协议,即:由软件实现改成硬件…...
生信技能63 - 构建gnomAD变异位点的SQLite查询数据库
将数据量巨大的gnomAD数据库,通过SQLite数据库寻找gnomAD中存在的各种变异注释信息(如等位基因计数,深度,次要等位基因频率等),查询300.000个变量的查询需要大约40秒,通过染色体编号+位置+REF+ALT即可进行快速查询。 1. gnomAD变异注释VCF文件字段 gnomAD VCF各版本包…...
0x0118消息 WM_SYSTIMER
0x0118消息就是WM_SYSTIMER 编辑框出现输入光标时,产生的消息. 0x0118 would be the undocumented WM_SYSTIMER, which appears to be used for caret blinks. 0x0118是一个undocument 消息, 微软没有记录。 但在一些库的源码中可以看到,比如ATL的库文…...
【机器学习】机器学习的基本分类-无监督学习(Unsupervised Learning)
无监督学习(Unsupervised Learning) 无监督学习是一种机器学习方法,主要用于没有标签的数据集。其目标是从数据中挖掘出潜在的结构和模式。常见的无监督学习任务包括 聚类、降维、密度估计 和 异常检测。 1. 无监督学习的核心目标 1.1 聚类…...
[代码随想录09]字符串2的总结
前言 处理字符串主要是有思路,同时总结方法。 题目链接 151. 反转字符串中的单词 - 力扣(LeetCode) 55. 右旋字符串(第八期模拟笔试) 一、翻转字符串里的单词 这个题目的主要思路,代码采用从后往前遍历字…...
java注解(一):什么是注解?什么是元注解?如何自定义注解?注解的原理是什么?
目录 1、什么是注解? 2、什么是元注解 1、Target() 2、Retention() 3、Documented 4、Inherited 3、如何自定义注解以解使用 4、注解的原理 本篇文章主要是介绍注解的概念、原理,以及通过代码演示4种元注解、如何自定义注解。通过反编译的形式进…...
AD20 原理图库更新到原理图
一 点击工具,从库更新。快捷键TL 二 点击完成 三 执行变更,最后点击关闭...
.NET用C#导入Excel数据到数据库
将Excel文件中的数据导入到数据库中不仅能够提升数据处理的效率和准确性,还能极大地促进数据分析和决策制定的过程。尤其在企业级应用中,Excel作为数据输入和初步整理的工具非常普遍,但其功能对于复杂查询、大规模数据管理和跨部门的数据共享…...
小身躯大能量-供热系统通过EtherCAT转Profinet网关进行升级
在现代工业自动化领域,通信技术的进步对于提高系统效率、稳定性和可靠性起着至关重要的作用。EtherCAT(Ethernet for Control Automation Technology)作为一种实时以太网解决方案,因其高性能及成本效益高等特点,在众多…...
Android11.0系统关闭App所有通知
通过广播接收方式,根据包名关闭App所有通知。 packages/apps/Settings$ git diff diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d4c54c6ed8..1ce7d4136f 100644 --- a/AndroidManifest.xmlb/AndroidManifest.xml-106,6 106,7 <uses-permissio…...
# issue 8 TCP内部原理和UDP编程
TCP 通信三大步骤: 1 三次握手建立连接; 2 开始通信,进行数据交换; 3 四次挥手断开连接; 一、TCP内部原理--三次握手 【第一次握手】套接字A∶"你好,套接字B。我这儿有数据要传给你,建立连接吧。" 【第二次…...
力扣100题--移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: […...
Spring 邮件发送
Spring 邮件发送 1. 主要内容(了解) 2. JavaMail 概述(了解) JavaMail,顾名思义,提供给开发者处理电⼦邮件相关的编程接⼝。JavaMail 是由 Sun 定义的⼀套收发电⼦邮件的 API,它可以⽅便地执⾏⼀…...
利用 360 安全卫士极速版关闭电脑开机自启动软件教程
在使用电脑的过程中,过多的开机自启动软件会严重拖慢电脑的开机速度,影响我们的使用体验。本教程中简鹿办公将详细介绍如何使用 360 安全卫士极速版关闭电脑开机自启动软件,让您的电脑开机更加迅速流畅。 一、打开 360 安全卫士极速版 在电…...
楼房销售系统
文末获取源码和万字论文,制作不易,感谢点赞支持。 毕 业 设 计(论 文) 题目:楼房销售系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储…...
UML箭线图的理解和实践
在软件开发的世界里,UML(统一建模语言)作为一种标准化的建模语言,扮演着举足轻重的角色。UML类图更是软件开发设计和架构过程中的核心工具,它不仅能帮助开发者明确系统中的类及其关系,还能为后续的代码实现…...
Qt入门8——Qt文件
1. Qt文件概述 文件操作是应用程序必不可少的部分。Qt作为⼀个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件复制或重命名等。 2. 输入输出设备类 在…...
鸿翼受邀出席2024海峡两岸档案暨缩微学术交流会
近日,由中国档案学会、中国文献影像技术协会共同主办,中华档案暨资讯微缩管理学会参加的2024年海峡两岸档案暨缩微学术交流会在乌鲁木齐召开。鸿翼联合创始人兼CTO罗永秀受邀出席本次交流会并作主题分享。 自1992年以来,该学术交流会已连续举…...
支持win7系统的onnxruntime
在win7 X86系统上,使用了onnxruntime.dll库做AI识别,但是在win7上运行报0xc0000005的错误 经查,ONNX Runtime从v1.15.0版本开始不再支持Windows 7及其之前的操作系统,即便尝试重新编译源代码亦无法在这些老系统上运行,…...
3大核心功能解密:如何用CSL编辑器告别引用格式噩梦
3大核心功能解密:如何用CSL编辑器告别引用格式噩梦 【免费下载链接】csl-editor cslEditorLib - A HTML 5 library for searching and editing CSL styles 项目地址: https://gitcode.com/gh_mirrors/csl/csl-editor 还在为论文引用格式而烦恼吗?…...
从仿真到现实:用Unity+ROS2搭建激光雷达小车,为实体机器人开发做预演
从仿真到现实:用UnityROS2搭建激光雷达小车,为实体机器人开发做预演 在机器人开发领域,仿真环境正逐渐成为不可或缺的工具。想象一下,你可以在不购买任何硬件的情况下,验证复杂的导航算法;或者在投入大量资…...
ARM Cortex-M微控制器与瑞萨RA系列开发实战指南
1. 项目概述:从“ARM”到“瑞萨RA”的认知之旅在嵌入式开发的江湖里,如果你还在纠结于8位、16位单片机的选型,或者对“ARM Cortex-M”这个名词感到既熟悉又陌生,那么这篇文章就是为你准备的。我接触过不少从传统8051、AVR转型过来…...
从QRegExp迁移到QRegularExpression避坑全记录:我们项目踩过的雷和最佳实践
从QRegExp迁移到QRegularExpression避坑全记录:我们项目踩过的雷和最佳实践 当团队决定将代码库从Qt4/Qt5升级到Qt6时,正则表达式模块的迁移往往是最容易被低估的挑战之一。我们项目组在重构过程中,曾因QRegExp到QRegularExpression的语法差异…...
Rime中州韵配置避坑指南:从安装小狼毫到实现Emoji、花字、彩色文本的完整流程
Rime中州韵配置避坑指南:从安装小狼毫到实现Emoji、花字、彩色文本的完整流程 第一次接触Rime输入法的用户,往往会被其高度定制化的特性所吸引——无论是动态状态栏、彩色候选词,还是随心所欲的Emoji混输,都让人眼前一亮。但当真…...
如何永久保存微信聊天记录?3分钟学会数据导出与智能分析终极指南
如何永久保存微信聊天记录?3分钟学会数据导出与智能分析终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…...
Linux应用目录规范实战指南
Linux应用目录规范实战指南本文面向具备一定 Linux 基础的技术人员,围绕应用目录规范展开,重点讨论配置目录、数据目录和日志目录职责分离。在中级运维和系统管理工作中,这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交…...
【亲测免费】 ImageNet标签文件及读取脚本:加速您的计算机视觉研究
ImageNet标签文件及读取脚本:加速您的计算机视觉研究 【下载地址】ImageNet标签文件及读取脚本 ImageNet 标签文件及读取脚本 项目地址: https://gitcode.com/open-source-toolkit/56c9e 项目介绍 在计算机视觉领域,ImageNet数据集是图像分类任务…...
PTA天梯赛L2-007家庭房产题解:用C++并查集+结构体搞定复杂家庭关系统计(附完整代码)
PTA天梯赛L2-007家庭房产题解:C并查集与结构体的高效应用 在算法竞赛中,处理复杂关系网络是常见挑战。PTA天梯赛L2-007"家庭房产"题目正是这类问题的典型代表,要求选手统计每个家庭的人口、房产套数和人均面积。这道题看似简单&am…...
别再只改IMEI了!深入理解高通基带QCN:从参数结构到软件检测的完整对抗思路
高通基带QCN参数体系解析与多维设备指纹对抗策略 在移动设备安全领域,设备标识参数的修改与检测始终是一场动态博弈。随着安卓系统安全机制的不断升级,简单的IMEI修改早已无法应对现代应用的多维指纹检测体系。理解高通基带QCN参数的组织结构及其在系统中…...
