2022-12-14 移植Qt Creator helloworld 应用到ARM平台运行过程,我这里用buildroot里面的编译器。

news2024/11/25 12:33:55

一、在ubuntu上运行可执行文件。

1、ubuntu里面安装qt creator 建立helloworld 工程,点击run就可以运行,运行如下。

2、在ubuntu上运行方法二:同级目录下有build-helloworld-Desktop_Qt_5_12_12_GCC_64bit-Debug,用file helloworld命令可以知道它是x86-64可执行文件,执行./helloworld即可运行。

 3、获得Qt可执行文件方法三:
      除了上面说的在Qt Creator 中构建出可以在ARM平台上运行的Qt程序之外,还有另一种方法也可以得到可以运行的Qt程序。进入项目的文件夹,直接运行qmake,生成 Makefile,再执行 make 开始编译。

     3.1 到工程目录下执行qmake,可能会遇到

qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

 解决方法是:执行sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf 在里面添加qt安装的路径就可以运行。

 

二、接下来如何交叉编译helloworld了,然后放到ARM上运行。

1、我这里用buildroot编译出来output目录下的编译器进行编译,qmake、make之后就生成ARM可执行文件。

 

 2、把可执行文件helloworld放到arm板上面运行

  3、上图可以看到运行的时候会有error的提示。解决方案是在后就加 -platform linuxfb(有可能行)

qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: linuxfb, minimal, offscreen, vnc, wayland-egl, wayland.

   4、出现上面的error可以设置下面的两个变量指定显示屏就可以打开了应用

		export QT_QPA_PLATFORM=wayland
		export XDG_RUNTIME_DIR=/tmp/.xdg

 5、真机运行效果,mipi屏幕。

 

三、buildroot系统,在桌面上显示helloworld图标,点击打开应用

1、/usr/share/applications目录下是在桌面显示图标的应用,模仿一个qhelloworld.desktop用来打开qhelloworld

2、qhelloworld.desktop内容

[Desktop Entry]
Name=qhelloworld
Exec=/usr/bin/helloworld
Icon=/usr/share/icon/icon_qsetting.png
Type=Application

 3、mipi 屏幕显示效果

 

四、参考文章

linux下arm平台Qt编译环境搭建与解析 - ldxsuanfa - 博客园

移植Qt到ARM平台及搭建Qt交叉编译环境_<阿杰。>的博客-CSDN博客_qt arm

快速解决qmake编译错误:could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory_Uka Saegusa IN db的博客-CSDN博客

执行QT程序时刚启动提示Could not find the Qt platform plugin "eglfs" in "" / 全志 SOC / WhyCan Forum(哇酷开发者社区)

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

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

相关文章

VS使用技巧汇总

总目录 文章目录总目录前言一、快捷技巧1.代码片段快捷方式2.选择性粘贴3.快速停靠窗口4.多行同步快速编辑5.引用命名空间6.整行上下移动7.规整代码格式二、其他技巧1.其他总结前言 本文会持续收录一些VS的使用技巧&#xff0c;掌握VS一些常用的使用技巧对于提高我们编程效率很…

MA-Net:用于肝脏和肿瘤分割的多尺度注意力网络

摘要 近年来为了提高医学图像分割的性能&#xff0c;提出了大量基于多尺度特征融合的UNet变体。与以往通过多尺度特征融合提取医学图像上下文信息的方法不同&#xff0c;本文提出了一种新的多尺度注意力网格&#xff08;MA-Net&#xff09;在这个网络方法中引入了自注意力机制…

Netty使用篇:自定义编解码器

我们今天还是继续Netty&#xff0c;Netty的编码器和解码器就是Netty对Handler这个组件的一种使用场景而已&#xff0c;SpringWebFlex就是基于这个Netty来做的&#xff0c;在往上引深一层GateWay服务网关就是SpringWebFlex的实现&#xff0c;所以SpringCloud当中明确说明了&…

DPDK源码分析之DPDK基础概览

本文主要介绍一下DPDK这项技术的基础概览&#xff0c;包括什么是DPDK&#xff0c;为什么有它存在的必要&#xff0c;它的框架是怎样的&#xff0c;使用了哪些技术实现&#xff0c;DPDK的应用场景有哪些&#xff0c;最后在centos7服务器上实装一个dpdk环境做一个简单的数据包收发…

C++ VTK鼠标网格表面绘制曲线

程序示例精选 C VTK鼠标表面绘制曲线 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 C VTK鼠标表面绘制曲线&#xff0c;功能完善&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 文章目录 一、所需…

基于Android的招聘求职网站的设计与实现

毕业设计 基于Android的招聘求职网站的设计与实现 1&#xff0e;课题意义及目标 在二十一世纪求职方式跟以前是不同的&#xff0c;与在各个用人单位和招聘会上寻找理想的工作&#xff0c;基于安卓的招聘系统能够提供最好的最丰富及时的招聘信息。。 通过对该系统的研究设计…

【人工智能与机器学习】——决策树与集成学习(学习笔记)

&#x1f4d6; 前言&#xff1a;决策树&#xff08;Decision Tree&#xff09;是一种通过对历史数据进行测算&#xff0c;实现对新数据进行分类和预测的算法。机器学习中&#xff0c;决策树是一个预测模型&#xff0c;代表的是对象属性与对象值之间的一种映射关系。该算法由于逻…

django计算机毕业设计基于安卓Android的移动电商平台系统APP-商品购物商城app

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把移动电商平台与现在网络相结合,利用python技术建设移动电商平台APP,实现移动电商平台的信息化。则对于进一步提高移动电商平台发展,丰富移动电商平台经验能起到不少的促进作用。 移动电商平台APP能够通过互联网得到广泛的…

如何向gitlab发布的附件里上传文件

gitlab 发布后在附件里会有打包好的源码&#xff0c;类似下图 笔者想把构建好的文件也打包放在这个附件里&#xff0c;经过研究可行&#xff0c;步骤分享如下 注&#xff1a;笔者用的gitlab版本为12.10.3 创建Access Token 登录gitlab,点击右上角图像&#xff0c;点击Settin…

Linux基本命令(3)

Linux基本命令(3) &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要讲解了最后一部分常用的Linux指令和一些热…

1年时间,从小公司到美团测试开发,我做对了这些事情....

&#x1f4cc; 博客主页&#xff1a; 程序员二黑 &#x1f4cc; 专注于软件测试领域相关技术实践和思考&#xff0c;持续分享自动化软件测试开发干货知识&#xff01; &#x1f4cc; 公号同名&#xff0c;欢迎加入我的测试交流群&#xff0c;我们一起交流学习&#xff01; 我的…

优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注

优化cv2.findContours()函数提取的目标边界点 假设我们想要提取的目标边界长这样&#xff1a; 我们先使用以下代码查看效果 import cv2 import numpy as np import osif __name__ __main__:# 图像可以选择自己的image_filepath ./landslide/image/20221129112713.png# 读取…

Java并发和多线程编程学习(二) Java内存模型

并发编程中需要处理的两个重要问题是线程之间如何通信以及线程之间如何同步&#xff0c;Java的并发采用的是共享内存模型&#xff0c;且线程之间的通信总是隐式执行&#xff0c;所以需要我们深入学习从而避免复杂的内存可见性问题 内存模型的抽象结构 在Java中&#xff0c;所…

java计算机毕业设计ssm基于H5的音乐播放管理系统

项目介绍 该系统是基于H5,使用Vue、JavaScript、CSS技术开发而成。系统服务器使用Tomcat,利用MySQL存储数据、用JDBC实现数据的访问。管理员在系统部署阶段将所有用户对应权限进行分配。正式投入使用时,用户通过登录模块进入系统。根据权限控制管理,每个用户角色的操作界面也有…

【轻量级开源ROS 的机器人设备(4)】--(2)通信实现

前文链接 【轻量级开源ROS 的机器人设备&#xff08;4&#xff09;】--&#xff08;1&#xff09;通信模块_无水先生的博客-CSDN博客 三、 通信概要 概述 ROS 的通信层是 ros_comm 堆栈的一部分&#xff0c;遵循发布/订阅范式&#xff0c;如图 2.2 所示。网络&#xff0c;也称…

(设计模式) (李建忠 C++) 23种设计模式

文章目录前言组件协作模板方法 Template Method动机模式定义结构代码情景版本1版本2变化原理要点总结个人小结策略模式 Strategy动机模式定义结构代码情景版本1版本2要点总结个人小结观察者模式 Observer动机模式定义结构代码场景版本1版本2版本2要点总结个人小结单一职责装饰模…

斐波那契问题——上台阶问题

题目&#xff1a; 给定整数N&#xff0c;代表台阶数&#xff0c;一次可以跨2个或者1个台阶&#xff0c;返回有多少种走法。 举例&#xff1a; N3&#xff0c;可以三次跨一个台阶&#xff0c;也可以先跨2再跨1&#xff0c;也可以先跨1再跨2&#xff0c;共三种走法。 思路&…

上海还有哪些比较好的IB学校?

今天我们就一起来盘点沪上几所办学成绩比较好的IB学校&#xff0c;快来看看哪所学校才是孩子的最好选择&#xff01; Promise 上海民办平和学校 上海市民办平和学校&#xff08;Shanghai Pinghe School&#xff09;是由上海金桥&#xff08;集团&#xff09;有限公司于1996年9月…

常用Java接单平台一览

不少主攻Java的程序员兄弟除了工作&#xff0c;还会在空闲时间选择接单来增加自己的收入&#xff1b;对于那些生活在二三线的程序员兄弟们&#xff0c;通过接单&#xff0c;来获得与一线城市对等的收入。具体该怎么做&#xff0c;且听我娓娓道来。接下来干货满满&#xff0c;先…

前端—新增的嵌入多媒体元素与交互性元素

新增的嵌入多媒体元素与交互性元素 新增的嵌入多媒体元素有video和audio元素&#xff0c;分别是用来插入视频和声音的。值得注意的是&#xff0c;可以在开始标签和结束标签之间放置文本内容&#xff0c;这样旧版本的浏览器就可以显示出不支持该标签的信息。例如下面的代码。HT…