在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编吗

最近在做有关嵌入式的东西,很多不懂。
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之类的。。。。完全不懂啊。。。求指教

猜你喜欢

转载自blog.csdn.net/weixin_36060730/article/details/78359300