Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

news2024/11/28 22:47:40

前言

最近在搞交叉编译的事,手上拿了个同事的香橙派玩交叉编译,现在来到了第一步,就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm,而是需要自行在arm环境下编译一个qt环境出来,所以这里需要使用到qt提供的qt everywhere套件在板载系统上编译

参考文章

移植Qt到ARM平台及搭建Qt交叉编译环境

正文

前排提示,之前我在网上参考了很多教程,在一些板子上如果直接尝试编译,直接使用./configure -prefix xxx 来编译,就会有比如在我尝试使用Qt-everywhere进行编译的时候,提示报错xx/lib/libqtharfbuzz.a:No such file or directory 的bug,导致编译失败,没有下文了。

所以我们在arm板上编译的时候需要做一些取舍,有些模块是我们不需要的,就要在./configure的时候将其标注为不需要

流程

qt-everywhere的编译流程大致如下:

  1. 下载qt-everywhere包,并解压到任意路径Path_下
  2. 使用./configure命令对当前工程进行配置,指定编译行为
  3. 使用gmake install命令开始编译

具体流程

1. 下载qt-everywhere包

download.qt.io

在这里插入图片描述

然后我们将这个qt-everywhere-src-5.12.10.tar.xz文件解压到某个文件夹下,比如

在这里插入图片描述

2. 使用./configure命令配置编译流程

这里的具体内容可以参考
Qt移植到ARM64-v8平台(NXP i.MX8M)笔记

但是我这里不做过多介绍,cd到qt-everywhere-src-5.12.10目录下直接使用./configure -prefix ~/qtInstall 把这个qt的编译后成功指定到qtInstall目录下了,具体的目录可以自己指定

如果./configure命令一切正常的话,则上述会提示你现在可以使用make install命令进行编译,如果出现这个提示则可以直接进行编译了。

我在编译的时候会报错,提示是一个和数字有关的函数未被定义,我这里是qendian.h里面少了头文件,我往里面手动加了一个#include <limits> 就可以了,不过我也不知道这合不合适

3.使用make install 命令开始进行编译

上述提示出现后,就可以使用make install来进行编译和安装了
在这里插入图片描述

报错

  1. 在安装的过程中,报错Error2 xx/lib/libqtharfbuzz.a:No such file or directory

这个是因为我的linux环境里没有安装libharfbuzz库,使用sudo apt-get install libharfbuzz-dev,删掉build出来的内容,重新编译即可。

  1. 安装的过程中,提示webengine需要python

同上,sudo apt-get install python 即可

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

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

相关文章

Ubuntu---之命令学习

方便于作者自用的命令手册&#xff0c;不喜勿喷 ls ls是查看指定路径下的文件信息&#xff0c;可以是相对路径也可以是绝对路径 使用参数&#xff1a; -a&#xff1a;列出全部文件&#xff08;包含隐藏文件&#xff0c;如.bashrc&#xff09;-l&#xff1a;列出文件的全部信…

【智能家居】东胜物联提供软硬一体化智能家居解决方案,助企业提高市场占有率

背景 随着智能家居市场的不断壮大&#xff0c;越来越多的消费者开始享受到它带来的便捷和效益。现在&#xff0c;他们可以通过远程或语音控制设备进行个性化设置&#xff0c;比如调节照明和温度&#xff0c;让生活变得更加舒适和智能化。 根据SPER市场研究&#xff0c;预计秘…

K8s的Pod出现Init:ImagePullBackOff问题的解决,(以calico网络插件为例)

问题描述&#xff1a; 对于这类问题的解决思路应该都差不多&#xff0c;本文以calico插件安装为例&#xff0c;发现有个Pod的镜像没有pull成功 第一步&#xff1a;查看这个pod的描述信息 kubectl describe pod calico-node-t9rql -n kube-system从上图发现是docker拉取"…

【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;Linux_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…

windows下的IDEA运用Scala 编写的 Apache Spark 应用程序

目录 一.环境要求 虚拟机环境 1.linux操作系统 2.jdk 3.Hadoop环境 4.spark 5.scala Windows环境 1.jdk 2.Hadoop&#xff08;同上&#xff09; 3.Scala 4. 安装winutils 二.IDEA的安装 idea下载 1、网站 2、下载 3、 安装 idea的配置 1.汉化 2.下载scala…

Windows电脑上如何进行硬盘分区操作!

在Windows操作系统环境下,对电脑硬盘进行分区是一种常见的硬盘管理手段,它可以帮助用户更好地组织和管理存储空间,确保操作系统、应用程序和用户数据各有所属。本文将详细介绍在Windows PC上进行硬盘分区的步骤,适用于Windows 7到Windows 11等不同版本的操作系统。 步骤一:…

C# visual studio 2022 学习2

类成员&#xff1a; 1.字段成员 字段只是类中声明的一个变量&#xff0c;用来在对象中存储信息。 &#xff08;1&#xff09;.静态字段 使用static关键字修饰的就是静态字段&#xff0c;静态字段属于类而不属于某个类实例&#xff0c;对它的访问使用“类名.静态字段名” &…

el-tree 设置默认展开指定层级

el-tree默认关闭所有选项&#xff0c;但是有添加或者编辑删除的情况下&#xff0c;需要刷新接口&#xff0c;此时会又要关闭所有选项&#xff1b; 需求&#xff1a;在编辑时、添加、删除 需要将该内容默认展开 <el-tree :default-expanded-keys"expandedkeys":da…

JS+CSS3点击粒子烟花动画js特效

JSCSS3点击粒子烟花动画js特效 JSCSS3点击粒子烟花动画js特效

大数据技术学习笔记(十三)—— HBase

目录 1 Hbase 概述1.1 Hbase 定义1.2 HBase 数据模型1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型 1.3 HBase 基本架构 2 HBase Shell 操作2.1 基本操作2.2 namespace 操作2.3 表操作 3 HBase 原理深入3.1 RegionServer 架构3.2 HBase 写流程3.3 MemStore Flus…

【技术栈】Redis 企业级解决方案

​ SueWakeup 个人主页&#xff1a;SueWakeup ​​​​​​​ 系列专栏&#xff1a;学习技术栈 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 个性签名&…

C# 使用OpenCvSharp4将Bitmap合成为MP4视频的环境

环境安装步骤&#xff1a; 在VS中选中项目或者解决方案&#xff0c;鼠标右键&#xff0c;选择“管理Nuget包”&#xff0c;在浏览窗口中搜索OpenCVSharp4 1.搜索OpenCvSharp4,选择4.8.0版本&#xff0c;点击安装 2.搜索OpenCvSharp4.runtime.win,选择4.8.0版本&#xff0c;点…

vue3 + vite 实现一个动态路由加载功能

假设后端返回的格式是这样子 {"menu": [{"path": "/admin","name": "adminLayout","redirect": "/admin/index","componentPath": "/layout/admin/index.vue","children&quo…

Could not locate zlibwapi.dll. Please make sure it is in your library path!

背景 运行PaddleOCR时&#xff0c;用的CUDA11.6配的是cuDNN8.4。但是运行后却报错如下。 解决手段 去网上找到这两个文件&#xff0c;现在英伟达好像不能下载了&#xff0c;但是可以去网盘下载。然后把dll文件放入CUDA11.6文件下的bin目录&#xff0c;而lib文件放入CUDA11.6文…

基于YOLOv8的航空遥感飞机小目标检测

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的航空遥感飞机小目标检测&#xff0c;阐述了整个数据制作和训练可视化过程 1.YOLOv8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先…

js检测数据类型方式(typeof instanceof Object.prototype.toString.call())

typeof 使用 typeof 检测数据类型&#xff0c;首先返回的都是一个字符串&#xff0c;其次字符串中包含了对应的数据类型&#xff1b; 缺点&#xff1a; typeof null "object"不能具体细分是数组、正则还是对象中其他值&#xff0c;使用 typeof 检测数据类型对于对…

微服务day03 -- Docker

1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署&#xff0c;环境不一定一致…

59、服务攻防——中间件安全CVE复现IISApacheTomcatNginx

文章目录 中间件——IIS漏洞中间件——Nginx漏洞中间件——Apache中间件——Tomcat 中间件&#xff1a;IIS、Apache、Nginx、Tomcat、Docker、Weblogic、JBoss、WebSphere、Jenkinsphp框架&#xff1a;Laravel、Thinkphppythonl框架&#xff1a;Flaskjs框架&#xff1a;jQueryj…

vue+elementui中table实现单选行功能

el-table插件可以选择行&#xff0c;但是只能多选&#xff0c;而项目中有单选的需求。 效果如下图所示&#xff0c;点击行或者点击复选框都可以选中行&#xff08;高亮&#xff0c;复选框选中&#xff09;&#xff0c;并且每次只选中当前行&#xff0c;之前选中的行清空。点击标…

Panasonic松下PLC如何数据采集?如何实现快速接入IIOT云平台?

在工业自动化领域&#xff0c;数据采集与远程控制是提升生产效率、优化资源配置的关键环节。对于使用Panasonic松下PLC的用户来说&#xff0c;如何实现高效、稳定的数据采集&#xff0c;并快速接入IIOT云平台&#xff0c;是摆在他们面前的重要课题。HiWoo Box工业物联网关以其强…