【QT】Ubuntu 交叉编译安装 QT 5.12.7 源码

news2024/11/25 18:59:06

目录

1、下载 QT 源码包

2、搭建安装环境(下载依赖库)

3、创建QT源码编译脚本

4、运行编译脚本

1、下载 QT 源码包

QT5.12.7源码下载地址:  download | QT 5.12.7

选择任意一种下载即可,适用于 Windows 和 Linux 环境

这里选择的是.tar.xz 类型,上传到 Linux 环境,新建一个 qt-arm目录,然后将压缩包保存到 qt-arm 目录下,并解压。

tar xf qt-everywhere-src-5.12.7.tar.xz

2、搭建安装环境(下载依赖库)

sudo apt-get update
sudo apt-get install libxcb-xinerama0-dev
# sudo apt-get install python 会安装失败
sudo apt-get install build-essential perl git python3
# 为了支持 -qt-xcb 选项所需的库
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

可能在make install 的时候会出现找不到 python 的问题,因为直接下载 python 失败,所以这里下载的是 python3,需要在 /bin 目录下创建一个软链接名为 python

cd /bin
sudo ln -s python3 python

3、创建QT源码编译脚本

由于编译 QT 库的选项较多,这里推荐使用脚本编译,在解压后的 qt-everywhere-src-5.12.7 目录下创建一个脚本文件 auto-config.sh并赋予可执行权限,基本步骤如下: 

touch auto-config.sh        # 创建脚本文件
chmod a+x auto-config.sh    # 赋予脚本可执行权限

auto-config.sh 脚本文件的内容如下。大部分无需变动,少部分内容需要变动

  • -prefix:指定QT库的安装目录
  • -tslib:使用 tslib 库(支持触屏事件),如果使用了该选项需额外添加如下两个选项
    • -I: tslib 库的头文件目录
    • -L: tslib 库的库文件目录 

注意: 如果使用 tslib 库,需要先对 tslib 库进行交叉编译

#! /bin/sh

./configure -prefix /home/gzx/tool/qt-arm-build \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
-tslib \
-I/home/gzx/tool/tslib/tslib-master-build/include \
-L/home/gzx/tool/tslib/tslib-master-build/lib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-recheck-all

 

4、运行编译脚本

开始运行编译脚本

./auto-config.sh

配置完毕后,接下来开始编译安装

make -j4 & make install

最终在指定的安装目录下看到如下内容,且动态库文件为 arm 环境

 

参考文章: 

编译脚本参考: 嵌入式Qt | 如何交叉编译Qt模块_qt交叉编译-CSDN博客

./configure 编译选项参考: Qt 源码编译_qt源码编译_书中倦客的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CustomNavBar 自定义导航栏视图

1. 创建偏好设置键 CustomNavBarTitlePreferenceKey.swift import Foundation import SwiftUI//State private var showBackButton: Bool true //State private var title: String "Title" //"" //State private var subtitle: String? "SubTitl…

树莓派部署.net core网站程序

1、发布你的项目 使用mobaxterm上传程序 回到mobaxterm,f进入目录输入: cd webpublish 运行程序:dotnet WebApplication1.dll 访问地址为:http://localhost:5000,尝访问如下: 已经出现 返回的json,证明是可以访问的…

阿里云服务器通用型规格族20个实例规格性能特点和适用场景汇总

阿里云服务器ECS通用型规格族属于独享型云服务器,实例采用固定CPU调度模式,实例的每个CPU绑定到一个物理CPU超线程,实例间无CPU资源争抢,实例计算性能稳定且有严格的SLA保证,在性能上会更加稳定,高负载情况…

AI:38-基于深度学习的抽烟行为检测

随着人工智能的迅猛发展,它在各个领域展现出了广泛的应用潜力。其中,基于深度学习的抽烟行为检测技术引起了人们的极大兴趣。这项技术利用计算机视觉和深度学习算法,能够自动检测和监测人们的抽烟行为,为烟草控制和公共卫生提供了新的手段。本文将深入探讨基于深度学习的抽…

01-网络篇-网络分层和常见网络协议

常使用的网络有广域网(WAN)、城域网、局域网(LAN),一般我们遇到的场景是广域网和局域网,广域网就是常说的外网,而局域网一般用于学校、公司等场合。在家庭路由器中对应WAN口和LAN口。网络是极为…

Windows 定时备份 pg 数据库,定时删除

目录 1. 写个备份脚本2. Windows 添加定时任务3. 使用备份的 SQL 还原数据 1. 写个备份脚本 备份数据库脚本: pgBacks.bat ECHO OFF :: 用于启用扩展功能。在使用enableextensions选项后,批处理脚本可以使用扩展命令和特性 setlocal enableextensions…

Sprint framework Day08:Spring的@Autowired注解

前言 当使用注解和 XML 配置结合时,可以使用注解 Autowired、Qualifier 和 Primary 来实现自动装配并进行依赖注入。 一、了解 Autowired、Qualifier 和 Primary 注解 Autowired 注解:用于自动装配依赖。在需要进行依赖注入的地方,添加 Auto…

Jetpack:006-如何使用输入框

文章目录 1. 概念介绍2. 使用方法2.1 TextField2.2 OutlinedTextField 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中文本组件扩展相关的内容,本章回中主要介绍输入框组件。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介…

C++笔记--基于C++实现NMS算法

1--完整代码 // g nms.cpp -stdc11 -o nms_test // ./nms_test#include <iostream> #include <vector> #include <algorithm>// 锚框结构体 struct BoundingBox{float x, y, width, height, score; };class NMS{ public:NMS(){};// 非极大值抑制函数std::ve…

华为云云耀云服务器L实例评测|华为云耀云服务器L实例私有库搭建verdaccio(八)

九、华为云耀云服务器L实例私有库搭建verdaccio&#xff1a; Verdaccio 是一个简单的、零配置本地私有 npm 软件包代理注册表。Verdaccio 开箱即用&#xff0c;拥有自己的小型数据库&#xff0c;能够代理其它注册表&#xff08;例如 npmjs.org&#xff09;&#xff0c;缓存下载…

Linux桌面环境(桌面系统)

早期的 Linux 系统都是不带界面的&#xff0c;只能通过命令来管理&#xff0c;比如运行程序、编辑文档、删除文件等。所以&#xff0c;要想熟练使用 Linux&#xff0c;就必须记忆很多命令。 后来随着 Windows 的普及&#xff0c;计算机界面变得越来越漂亮&#xff0c;点点鼠标…

接口测试文档

接口测试的总结文档 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什么要做&#xff1f; 第二部分&#xff1a;主要介绍为什…

企业云盘推荐:哪个更适合您的需求?

企业云盘因其便捷易用的特点&#xff0c;已成为现代企业办公的热门工具之一。 首先&#xff0c;企业云盘提供了可靠的数据存储。与传统的本地存储方式相比&#xff0c;企业云盘将数据存储在云服务器上&#xff0c;具有强大的数据冗余和备份机制&#xff0c;确保数据的安全性和…

【专题】并查集判断冲突

&#xff08;1&#xff09;题目 P1955 [NOI2015] 程序自动分析 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) &#xff08;2&#xff09;解决思路 先排序&#xff0c;把所有e1的操作放在前面&#xff0c;然后再进行e0的操作。在进行e1的操作的时候&#xff0c;我们只要把它…

笔试、面试总结(网络安全与渗透测试)

什么是同源策略&#xff1f; 为了防止不同域在用户浏览器中彼此干扰&#xff0c;浏览器对从不同来源&#xff08;域&#xff09;收到的内容进行隔离。浏览器不允许任何旧有脚本访问一个站点的 cookie&#xff0c;否则 &#xff0c;会话容易被劫持。只有发布 cookie 的站点能够…

用servlet实现一个简单的猜数字游戏。

需要两个页面&#xff0c;一个jsp页面&#xff08;guess.jsp&#xff09;和servlet页面&#xff08;servlet&#xff09;。 一.jsp页面 在jsp页面中需要实现&#xff1a; 1.创建随机数并且保存在session中。 2.做个form表单提交猜的数字给servlet页面。 <%page import&…

电提示找不到api-ms-win-crt-runtime-l1-1-0.dll怎么办,分享快速解决办法

如果在电脑中提示api-ms-win-crt-runtime-l1-1-0.dll找不到或丢失的情况&#xff0c;大家可以来看看这篇文章&#xff0c;能够快速解决api-ms-win-crt-runtime-l1-1-0.dll丢失的问题&#xff0c;一起来看看都有什么办法解决吧。 一&#xff0e;api-ms-win-crt-runtime-l1-1-0.d…

判断多个多边形是否连通(方法一:原理)

重点&#xff1a; 1.将多边形一个一个拎出来判断&#xff0c;以1为开始&#xff0c;后续如果连接&#xff0c;就加入序列&#xff0c;以2开始判断&#xff0c;以此为序。

Python 机器学习入门之逻辑回归

系列文章目录 第一章 Python 机器学习入门之线性回归 第一章 Python 机器学习入门之梯度下降法 第一章 Python 机器学习入门之牛顿法 第二章 Python 机器学习入门之逻辑回归 逻辑回归 系列文章目录前言一、逻辑回归简介二、逻辑回归推导1、问题2、Sigmoid函数3、目标函数3.1 让…

【C语言】对文件的输入输出

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C语言初步学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读1. 什么是文件1.1 程序文件1.2 数据文件1.3 数据流1.4 文件名 2. 文件的分类3. 文件缓冲区4. 文件的打开和关闭4.1 文…