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

目录

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.hqwc.cn/news/133904.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20.04 vins-fusion 运行记录

过程记录 环境: ubuntu20.04 opencv4.2.0(此次使用) 3.3.1(其他程序在使用) vins-fusion vision_opencv 1.下载VINS-Fusion和cv_bridge,并进行修改,方便使用opencv4.2.0和对应的cv_bridge。 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src…

UE4和C++ 开发-UE4怎么删除C++类

1 关闭visual stdio,关闭UE4引擎。 2 打开你的项目文件夹。找到你要删除的.h,.cpp文件删除。 3、删除Binaries文件夹。 4 右击.uproiect文件,点击Generate Visual Studio project files. 5 双击.uproiect文件,忽略警告打开就看到已经删除了想要删除的C类…

计算机导论实验——Linux基础入门

使用Xshell登录 Linux 主机 linux命令: cd:去哪里 pwd:在哪里 ls:查看当前有什么文件 mkdir:创建新目录 cp:复制 cat:连接或显示文件 rm:删除 mv:用于移动或重命名文件…

《3D 数学基础》几何检测-相交性检测

目录 1. 2D直线相交 2. 3D射线相交点 3. 射线和平面的交点 4. 3个平面的交点 5. 射线和圆或者球交点 6. 两个圆或者球是否相交 7. 球和平面的相交性检测 8. 射线和AABB的相交性(13.17) 9. 射线和三角形的相交性(13.16) …

ssm+vue的课程网络学习平台管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的课程网络学习平台管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体…

给你一个项目,你将如何开展性能测试工作?

一、性能三连问 1、何时进行性能测试? 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义。因为后期功能完善上会对系统的性能有影响,过早进入性能测试会出现测试结果不准确、浪费测试资…

NSIDC定义的海冰相关概念

文章目录 相关概念Matlab绘图结果展示 相关概念 NSIDC 表示 “National Snow and Ice Data Center”,即美国国家雪和冰数据中心。NSIDC 是一个位于美国科罗拉多大学波尔得分校的研究中心,致力于收集、管理和分发全球雪和冰的科学数据。 Matlab绘图 cl…

【C++】-c++11的知识点(中)--lambda表达式,可变模板参数以及包装类(bind绑定)

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

暴力递归转动态规划(九)

题目 题有点难,但还挺有趣 有一个咖啡机数组arr[],其中arr[i]代表每一个咖啡机冲泡咖啡所需的时间,有整数N,代表着准备冲咖啡的N个人(假设这个人拿到咖啡后喝完的时间为0,拿手里咖啡杯即变空)&a…

Python爬虫(二十三)_selenium案例:动态模拟页面点击

本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 #-*- coding:utf-8 -*-import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup import timeclass douyuSelenium…

性能测试 —— 生成html测试报告、参数化、jvm监控

1.生成HTML的测试报告 1.1配置 (1)找到jmeter 的安装目录,下的bin中的jmeter.properties(jmeter配置文件) (2) ctrl f ,搜索jmeter.save.saveservice.output_format,取消井号 并且 把等号后的xml改为csv,…

nvm、node、npm解决问题过程记录

在Windows10如何降级Node.js版本:可以尝试将Node.js版本降级到一个较旧的版本,以查看问题是否得以解决。可以使用Node Version Manager (nvm) 来轻松切换Node.js版本,具体完整步骤: 首先,需要安装Node Version Manager…