在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个回答  2012-10-20
1、首先你要了解什么叫交叉编译:交叉编译简单的说就是在一个平台上生成另一个平台上的可执行代码。在linux上编译Qt程序需要安装工具链,这个工具链很好安装,直接解压就可以,具体方法网上有很多。
2、WIN平台编译出来的东西不可以直接在板子上运行。因为ARM平台不同于X86的平台。QT的环境就是说,你运行QT程序时,要到指定的系统里面去找相应的东西,比如库之类的。。所以这要是需要指定的。QT版本兼容性还可以,不一定要相同版本的QT。。

*******楼上说的太过绝对 :window不是无法进行进行编译,window上面是要相应的插件才可以。MDK就是个反例。追问

交叉编译环境弄好了 就是不太懂后面的 QT程序可以在我的windows系统里编好 然后拿到PC的linux系统里交叉编译 再传到开发板的嵌入式linux系统里对吧? 这三个地方的QT都是什么版本的呢????我只知道什么QTE QTopia QT Creator之类的。。。。完全不懂啊。。。求指教

第2个回答  2012-10-22
在linux下写不好吗?我感觉比在windows下写还好呢
第3个回答  2012-10-21
技术问题 找 加 西嵌之家技术交流群!

在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编...
不需要.但是必须经过交叉编译. (window 无法进行交叉编译.)2、在windows系统里编好的QT程序,经过交叉编译后能直接运行在板子上吗?还是板子需要弄个QT环境啥的?就是往里面安个相同版本的QT?必须要保证板子里已经移植成功QTE.编译过的程序才可以跑在板子上.(关于如何移植QTE是个大问题.如果你是新手....

在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编...
嵌入式中最重要的应用就是linux,linux就是用C语言实现的,你要是懂linuxc的话,那么做嵌入式这行业门槛肯定是没有问题了。QT只是其中的一个小小部分,很多时候在嵌入式的工作中是不需要的,因为有很多的嵌入式产品没有GUI,只用命令行就可以实现了。而且现在做GUI的工具也很多,QT只是其中一种。我的...

在Linux下用QT编写的程序怎么在ARM上运行
首先,你需要一块ARM芯片的测试主板。然后在主板上加载Linux系统,并且在Linux系统中配置QT的演示环境。然后通过数据线将你编写好的QT程序传输到主板上,然后在PC端使用Telnet或者在主板上进行程序的运行就好了!

嵌入式的Linux开发,需要在linux上装IDE吗?需要的话,都有那些?
IDE有很多,开发内核和应用可以用anjuta,开发应用可以用kdevlope,或者用qt的creator

嵌入式Qt-动手编写并运行自己的第1个ARM-Qt程序
嵌入式Qt开发的第一步:亲手创建并运行ARM-Qt程序 上一章节已经介绍了在Linux开发板上安装并测试Qt环境,现在我们将步入实际编程阶段。Qt的跨平台特性让我们先在Windows上编写并预览程序,然后通过交叉编译技术,生成适用于ARM Linux的可执行文件。首先,Windows环境下,安装Qt Creator用于开发。这个过程与...

关于QT开发平台和arm嵌入式的关系。
嵌入式QT也叫QT\/Embeded,是应用在嵌入式linux系统上的GUI应用程序运行环境,主要运行于framebuffer上。所以实现一个移动设备上的界面,我们这样来构造:硬件:arm9最小系统板+触摸液晶屏 软件:1.linux系统 2.QT 运行库 3.被QT编译好的应用程序 上三个都是嵌入式移植的,是移植好并用arm-linux-...

arm嵌入式linux qt入门问题请教
1.qt-x11是支持x11库的qt,用于linuxPc运行环境。qt-embedded是用于嵌入式环境的qt库。2.可以,只要选对了交叉编译器。3.qmake是用来生产makefile的,make是通过makefile文件编译成可执行文件的。4.他是嵌入式的qt库不仅能编译成arm平台的也可以编译成其它平台的,比如mips平台。5.没有,要适应在真机...

关于QT开发平台和arm嵌入式的关系。
因此,学习嵌入式QT你首先要对你的ARM开发板安装操作系统,编译环境,之后,学习QT的方法和学习MFC基本上没啥区别。最后,QT是跨平台硬件无关的,也就是说你在windows、台式机上用QT的方法与在手机、塞班系统上用QT的方法差别不大,因此你会在windows上用qt就OK了,其他的系统上不同的无非是编译与...

arm嵌入式linux qt入门问题请教
它就是qt-embedded。而qtopia是QT公司的一个嵌入式桌面系统,目前已停止开发了。2、如果arm上没有qt库,不能运行QT程序,必须把相应的QT库按装到ARM板上。3、qmake产生makefile,make根据makefile调用gcc进行编译。4、qt-embedded-linux-opensource-src-4.4.3.tar.gz是用在嵌入式上的QT开发库。用法...

Linux-Arm环境下配置编译qt-everywhere及交叉编译环境
在进行Linux-Arm环境下配置编译qt-everywhere及交叉编译环境的过程中,首先需要明确的是,Qt并未直接提供针对Arm平台的版本,故需要通过qt-everywhere套件在Arm系统上自行编译。在此过程中,我们需特别注意Qt-everywhere在Arm环境下编译可能遇到的问题,例如尝试直接使用.\/configure -prefix xxx来编译时,可能会...

相似回答