如何在ARM开发板的嵌入式linux系统上运行的QT程序

发布时间:2022-09-08 13:30

最近在做有关嵌入式的东西,很多不懂。
1、想在板子上运行用QT编好的程序,必须要在PC的linux系统里用QT编吗?
2、在windows系统里编好的QT程序,经过交叉编译后能直接运行在板子上吗?还是板子需要弄个QT环境啥的?就是往里面安个相同版本的QT?
谢谢。。。。。
 
1、想在板子上运行用QT编好的程序,必须要在PC的linux系统里用QT编吗?

不需要.但是必须经过交叉编译. (window 无法进行交叉编译.)

2、在windows系统里编好的QT程序,经过交叉编译后能直接运行在板子上吗?还是板子需要弄个QT环境啥的?就是往里面安个相同版本的QT?

必须要保证板子里已经移植成功QTE.编译过的程序才可以跑在板子上.

(关于如何移植QTE是个大问题.如果你是新手.one month,good luck to you) 交叉编译的时候用的是QTE的库而不是普通的QT库.而且这个库的版本和编译工具链必须和板子上的一致.
追问
意思是说 我可以在windows7的 QT Creator或者 Designer里编好程序 然后在虚拟机的linux系统里交叉编译?弄交叉编译的linux系统里要装个QTE的库是吗?然后板子里也要装个linux里一样的QTE库是吗? 那windows里的 QT跟linux或者板子里的库能对应上吗????都是些白痴问题。。。。。
回答
只要QtE的版本和你windows里的Qt不要相差太远就ok了.
在Linux里面交叉编译的时候. 最好在linux虚拟机里面也装个Qt Creator 然后把QtE库和交叉编译工具链添加入Qt Creator中.然后就可以进行交叉编译了.

所谓QtE库的移植.不是在开发板上装个QtE库, 其实是在pc 机上将QtE源码编译完成然后将库文件放到开发板上的.再制定一些环境变量就ok了.一定要记得用来编译QtE库源码的编译工具链一定要和你编译开发板上的linux系统的编译工具链一致.这个差一点点都不行.

就是说如果开发板里面的系统不是你搞的,而且你不知道用来编译开发板里面的系统的编译工具链的版本的话,你就有大麻烦了....
追问
啊??、把Qte库跟交叉编译链加入Qt Creator干嘛???交叉编译不就是直接arm-linux-gcc一下吗。。。。
回答
加入Qt Creator 是为了让交叉编译变得更简单.不然你要自己写makefile 用make porject命令....
追问
问最后一个问题哈 那我直接不用在windows 里面编QT了,在linux里面编好,然后交叉编译放到板子的linux也可以是吗???我的交叉编译版本是3.4.1的,linux里装什么版本的Qt 和开发板需要移植什么版本的Qte比较好呢???? 谢谢。。。。
回答
可以直接在linux里面编写代码的.等你配置完Qt Creator 后就会有两种开发环境.一种是Qt + gcc/g++
一种是QtE + arm-linux-gcc/g++. 编写代码的时候用第一种,交叉编译的时候用第二种.
(这个开发环境的搭建也挺难的...)

QtE的库也要和交叉编译工具链配合,记得不要使用版本太高的QtE的库,我挑战过最新的QtE库结果悲剧了.你可以试试的.也许运气好一下就过去了.(我是晕过去了的不知道你怎样....)网上有试验成功的例子就照只他们来选QtE的库.
1、首先你要了解什么叫交叉编译:交叉编译简单的说就是在一个平台上生成另一个平台上的可执行代码。在linux上编译Qt程序需要安装工具链,这个工具链很好安装,直接解压就可以,具体方法网上有很多。
2、WIN平台编译出来的东西不可以直接在板子上运行。因为ARM平台不同于X86的平台。QT的环境就是说,你运行QT程序时,要到指定的系统里面去找相应的东西,比如库之类的。。所以这要是需要指定的。QT版本兼容性还可以,不一定要相同版本的QT。。

*******楼上说的太过绝对 :window不是无法进行进行编译,window上面是要相应的插件才可以。MDK就是个反例。
追问
交叉编译环境弄好了 就是不太懂后面的 QT程序可以在我的windows系统里编好 然后拿到PC的linux系统里交叉编译 再传到开发板的嵌入式linux系统里对吧? 这三个地方的QT都是什么版本的呢????我只知道什么QTE QTopia QT Creator之类的。。。。完全不懂啊。。。求指教


关于qt,qte,qtopia,qt creator它们之间的区别和联系,相信对所有刚刚入门qt的同学来说都是很模糊的。我在刚开始接触qt的时候也是这样,而且我第一次接触的是qte,因为要在arm上开发一个应用,当时搭建平台可谓是。。。。。桑心。。。。 下面就分别介绍: QT: Qt是奇趣科技在1991年的时候开发的一个跨平台的C++图形用户界面应用程序框架。事实上它就跟windows下的mfc一样(接触过mfc的童鞋应该比较多吧!)。不过最大的区别是qt可以在windows下使用,也可以在linux下使用,而mfc却只能在windows下使用(废话,谁让mfc是微软的呢)。QT提供给应用程序开发者建立图形用户界面所需的所有功能。而且Qt很容易扩展,并且允许真正地组件编程。我就用qt开发过opencv的应用程序,“赶脚”还不错!!! QT/E: QT/E是QT的一个版本,而且相比之下,qt/e的性能更高!qt/e主要用于嵌入式的开发,是一个非常大的图形界面的类库。 Qtopia: qtopia其实是构建于Qt/E之上一个类似桌面系统的应用环境(gnome桌面环境也是基于qt的),或者说Qt/E和Qtopia是不同的两套程序,Qt/E是基础类库,Qtopia是构建于Qt/E之上的一系列应用程序。Qtopia 是Trolltech 公司(现已被Digia收购)为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。 Qt creator: Qt Creator是跨平台的 Qt IDE,它其实跟Eclipse相似,都是一个集成开发环境, 也就是说qt creator是我们用来开发qt相关的一个平台。以下来自小百:“Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。” 

 
  

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号