在ARM上做界面,不用QT行不行?不用Qtopia行不行?
本帖最后由 Chuda 于 2012-4-8 22:36 编辑做个毕设很悲催,写写程序不是问题,遇到困难是有能力解决的。
坎坷挫折的是QT,是开发环境的搭建。
真的是越用Linux,越觉得Windows的伟大啊。
历经重重困难,得到一个结果就是把qt-everywhere的ARM版本在Ubuntu中编译了出来。
然后,qmake出可执行文件,丢到ARM上,提示缺少XXXXlib。
然后又是一番无尽的折腾。
真的好浪费时间啊。各位指引下方向吧,不用QT做界面应用,可以换什么别的技术来做界面?只要能在ARM Linux上跑。前前后后,QT的编译环境起码花了我1个月时间。
刚刚遇到问题,不知道各位能否给点意见:
我使用arm-linux-gcc 4.3.2编译好qt-everywhere-opensouce后,文件被安装在usr/local/qtXXXXXXXXX中。我将这个文件夹复制到arm的usr/local/qtXXXXXXXXX后运行qmake出来的可执行文件(因我版本较高,使用qt4.8.0,所以此时已先退出qtopia),不再提示缺少lib,而是显示“Illegal instruction”。
网上解决这方面问题的文章不多,还扯到什么浮点运算上面去。太复杂啊! QT环境编译是比较麻烦 不防试一下MiniGUI
官网 http://www.minigui.org/ gtk无根版 QT确实相当烦啊,曾经编译过,弄了好长时间才弄好 真的好烦。
网上资料巨多,渐渐发现来来去去都是同一篇文章。昨晚不小心搜到一篇没看过的,才终于在Ubuntu上编译出ARM版本。
今天一天都在纠结ARM上程序无法运行的问题。 可以试试MiniGUI,国产的GUI。不过编译和安装仍然麻烦,要安装n多库和修改源代码。
QT有友善之臂移植好的文件系统可以直接用,楼主干啥还花那么多时间自己弄啊。 QT挺好啊,函数什么的都写好了,直接调用就行; Qt挺好啊,函数都写好了,直接调用就行了,手上有几本书不过上传困难,
我以前发过一个主题,那本书不错,楼主看看
jade1988 发表于 2012-4-8 20:16 static/image/common/back.gif
Qt挺好啊,函数都写好了,直接调用就行了,手上有几本书不过上传困难,
我以前发过一个主题,那本书不错, ...
谢谢帮顶。
你发的那本书我在图书馆借阅过。
可惜我现在连开发环境都搭建不起来。 我感觉QT挺好的,我现在就在用QT4 wxwidget arm wxwidget arm (网络问题,多发了一次)
http://www.wxwidgets.org/docs/embedded.htm 毕设也用arm+linux+QT做的飘过,QT很好用的说 基础不足。QT算比较好用的了。搭建QT的开发环境其实不是很麻烦吧,就是库的编译耗时比较长一点。 很麻烦么
注意一点就好了
只是时间有点长
fedora10+Qt4.5 话说linux下Qtcreator很强大的说
LZ注意一点:
1.版本要匹配 找一篇完整的安装教程来装
2.装不好的话建议删干净了换方法来,纠结于编译错误很头疼的
本帖最后由 pilgrim_kevin 于 2012-4-9 19:34 编辑
开发环境:毫无疑问,官方的QTSDK。从qt.nokia.com下载。当前QT库是4.8版本。
交叉编译:
官方网站下载qt-erverywhere源码包。
编译脚本(示例,根据实际需要调整配置选项):
qt-everywhere-opensource-src-4.8.0:
./configure -embedded arm -release -opensource -fast -xplatform qws/linux-arm-gnueabi-g++-little-endian -no-accessibility -no-qt3support \
-no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -declarative \
-no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-neon \
-silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-openssl \
-make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -svg \
-qt-freetype \
-qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb \
-qt-kbd-linuxinput \
-qt-kbd-tty \
-qt-mouse-linuxinput \
-qt-mouse-tslib \
-qt-mouse-pc \
-no-glib \
-confirm-license "$@"
make -j5(多核编译)
sudo make install(默认安装在/usr/local/Trolltech下)
交叉编译的库可以直接原样放到板子文件系统的/usr/local/Trolltech目录下。需要配置的东西不多,可能只需要设置几个环境变量就可以在板子上跑QT程序了(我记得我只设置了触摸屏、鼠标相关的一个环境变量以便同时使用触摸屏和usb鼠标)。
使用QTSDK中的QT Creator可以配置使用ARM版本的QT库和qmake,或者在PATH环境中增加arm版本的qt库路径,直接qmake & make也可。 交叉编译过程可能会遇到一两个编译错误需要修改sourcecode,google下基本都有解决方法。 可能会有一点点依赖的库,比如说tslib什么的,交叉编译下放到板子的/lib或者/usr/local/lib就好了。 MiniGUI如果不用商业版本的话就不建议用了,开源版本太老,现在而言已经过时了。
GTK可用,用GTK/DirectFB。
WxEmbedded不知道成熟度如何,可以试试看,我想成熟度应当与QT还是有不小差距。而且wx的类MFC风格我不喜欢,所以一直没有兴趣深入学习。
如果是轻量级的GUI,建议可以试试FTK,http://code.google.com/p/ftk/,国内高手的作品。 谢谢各位帮顶。谢谢楼上提供的GUI。
编译那关我应该已经没有问题了。
用arm-linux-gcc 4.3.2和4.4.3都能编译出QT4.7。
4.3.2编译的版本运行程序出现了经典的段错误,4.4.3的话,就说我arm上的glib版本太低,具体为libc.so.6这个符号链接指向的libc-2.8版本<2.9。我把一个libc-2.9复制到开发板,然后删了libc.so.6准备重建符号链接,结果从此杯具。删掉libc.so.6后,一些常用命令(如ls等)没了,按了下reset,进不去系统了。
下面我得去重新编译个内核下进去。无尽的折腾啊。 交叉编译工具链建议你用codesourcery的,不要太新,也不要太老。我用2009q3,gcc版本是4.4.1,glibc是2.10,目前没有遇到任何问题。qt是4.8。 牛啊,我还是用ucos在做。codesourcery很好用, 用QT比较好,论坛也比较多。用MINIGUI,技术支持没有,论坛也少。碰到问题难解决。如果碰不到问题,就没这个难题了。 神马QT,神马MINIGUI,神马WxWidget,,,
要我说:直接上Android,,,这个易于开发,而且界面漂亮,,,,这才是趋势,,
以后ARM9+Linux+QT的组合直接被Cortex-A5+Android的组合替代。。。。
当然,Android的内核还是Linux,所以底层开发,和驱动开发不会受到影响。。至于说应用程序,尤其是人机界面,Android的优势恐怕是其他的界面技术所无法比拟的,毕竟Android的程序已经有几十亿了,而且有Google加这么多公司的支持和投入。。。
至少我是这么认为的,,, pilgrim_kevin 发表于 2012-4-10 13:54 static/image/common/back.gif
交叉编译工具链建议你用codesourcery的,不要太新,也不要太老。我用2009q3,gcc版本是4.4.1,glibc是2.10 ...
我下了友善一个较新版的mini2440光盘,烧录了里面的Linux内核,版本比我买的时候的光盘要新,那个zImage带的glib 2.9,我把之前编译好的Qt4.7(用4.4.3编译)的,一运行demos里的程序,依然段错误。一个不小心在一个网上一个不为人知的角落发现一个帖子,说加上参数就解决段错误,我一加,还真行!
例如这样:./hello -qws -fn SIMHEI &
原帖:http://bbs.chinaunix.net/thread-1917490-1-1.html
然后又悲催地发现,触摸屏不能触摸,只能接USB鼠标。我编译时明明include了tslib的啊~~~人生啊。
我决定去找4.1.2的gcc再编译一次。
很悲催,真的。
demoxiedemoxie 发表于 2012-4-10 15:04 static/image/common/back.gif
用QT比较好,论坛也比较多。用MINIGUI,技术支持没有,论坛也少。碰到问题难解决。如果碰不到问题,就没这 ...
是啊,我发觉我的问题都有人遇到了。 Chuda 发表于 2012-4-10 18:17 static/image/common/back.gif
我下了友善一个较新版的mini2440光盘,烧录了里面的Linux内核,版本比我买的时候的光盘要新,那个zImage ...
我也想用Android啊,就是缺个手机,缺点动力。
Chuda 发表于 2012-4-10 18:17 static/image/common/back.gif
我下了友善一个较新版的mini2440光盘,烧录了里面的Linux内核,版本比我买的时候的光盘要新,那个zImage ...
触摸屏要设置一个环境变量。如要同时使用usb鼠标和触摸屏:
export QWS_MOUSE_PROTO='Tslib:/dev/input/event0 intelliMouse:/dev/input/mouse1' 上安卓是趋势 安卓也不能到处适用,尤其是低端一些的设备和工控、专业设备类的。 pilgrim_kevin 发表于 2012-4-10 19:38 static/image/common/back.gif
安卓也不能到处适用,尤其是低端一些的设备和工控、专业设备类的。
我认为:Android其实就是之前的Linux换了一个界面系统,所以,之前用Linux的地方都可以用Android代替,,,
当然,处理器的性能可能需要提升一些,所以ARM推出了Cortex-A5用于升级、替代早前的ARM9,,,, 还是先学习Linux的说,我用的Qt4.5.2版本编译了两三天才可以,可能是我的Linux版本太高,运行出的Qt 的界面超级的难看 QT.
不知道VS2008,QT那个做的界面炫?
要花哨的界面。 用GTK的路过 QT的资料少,用起来会麻烦些 XIVN1987 发表于 2012-4-10 20:02 static/image/common/back.gif
我认为:Android其实就是之前的Linux换了一个界面系统,所以,之前用Linux的地方都可以用Android代替,, ...
android的底层就是linux。
在小设备和专业设备上跑比较单一的应用,有没有必要一定要用android这样带有中间层复杂应用栈的系统?所以还是跟应用场合和需求有关系的。 Excellence 发表于 2012-4-11 08:33 static/image/common/back.gif
QT.
不知道VS2008,QT那个做的界面炫?
要花哨的界面。
花哨的界面,请学习qt quick。 没有java硬件解码的芯片还是不要用安卓了,慢死人
不知道你的界面是否复杂,不复杂的话可以直接通过framebuffer自己画界面,我正好也要用arm+linux,还有个上位机,原本是打算自己写个gui练练手的,不过这个月写上位机的过程让我又动摇了……有个完善的框架很好,像qt这种,一旦移植好了,数据库,xml,网络等各方面处理起来都会容易很多。
最好是能够保证开发板上的c/c++库和编译qt使用的库是一致的 建议楼主:
任何时候,搞有多层库继承关系的复杂开发项目,绝对不要使用交叉编译,务必要在目标系统上进行本机编译
本机编译可能速度比较慢,但绝对不会出错
当然,用于本机编译的系统,必须有相对于该系统来说最大限度的内存,否则比如编译 X 的时候很可能走不下去
至于说本机编译的系统从哪儿来?个人建议去 Gentoo Linux 的站上看 waitingconfirm 发表于 2012-4-11 14:35 static/image/common/back.gif
建议楼主:
任何时候,搞有多层库继承关系的复杂开发项目,绝对不要使用交叉编译,务必要在目标系统上进行 ...
可以在ARM上编译?好似真的能行哦,qmake已经放到ARM上,回头一定试试。 感谢各位,这样了:
现在问题是,必须用-fn参数才能避免段错误,而-fn参数后面跟的所谓“字库”可以随便写些东西,我也不知道怎么指定其他字库。
另外是中文暂时不知道怎么显示。
不过没有规定我不能全英文,就英文好了。先把毕设做好了,中文再慢慢折腾。 Chuda 发表于 2012-4-12 20:02 static/image/common/back.gif
感谢各位,这样了:
我的已经做好了……好像没有那么多挫折,也是用的4.8的源码,mini2440,触摸和中文之类的都解决了 crysislinux 发表于 2012-4-22 13:55 static/image/common/back.gif
我的已经做好了……好像没有那么多挫折,也是用的4.8的源码,mini2440,触摸和中文之类的都解决了 ...
中文是要自己加字库然后-fn指定吗?
我的挫折来源于对Linux各种不懂啊。 干脆SDL得了 移植过了就好了,忍一次痛吧。 Chuda 发表于 2012-4-22 14:37 static/image/common/back.gif
中文是要自己加字库然后-fn指定吗?
我的挫折来源于对Linux各种不懂啊。 ...
不用,你说的这种方法可能是早期版本的qt了,现在的qt编译后在lib目录下会有一个fonts目录,把字体文件放进去就行了,点阵或者truetype字体都是可以的
补充一下:国内的MiniGUI刚刚把3.0版本开源了。在android等系统平台的挤压下,飞漫原来卖MiniGUI商业授权的模式已经基本上没什么活路。
有兴趣的也可以用用看,毕竟也是已经做了十年的东西,还算成熟。 gtk,做界面的例子,谁发一个,研究一下怎么搞的 crysislinux 发表于 2012-4-22 20:23 static/image/common/back.gif
不用,你说的这种方法可能是早期版本的qt了,现在的qt编译后在lib目录下会有一个fonts目录,把字体文件放 ...
我是4.7的,的确有font文件夹。
等毕设全部搞完,再考虑这个字体了,英文也能用的其实。呵呵。 还没用过,正在学习当中 我们公司的招ARM工程师,有木有啊,公司在上海徐汇区漕河径这边{:smile:} SDL,很多游戏就是用这个写的,不过控件什么没有 友善和国嵌都不推荐用ubuntu做开发,因为缺少很多库文件。建议楼主换红帽和Fedro吧,至少我是用红帽企业版5,初学者一定要细读用户手册与视频教程,这样可以少走很多弯路。 用android吧 基于GLIB的GTK是个不错的选择。 安卓不是随便上的,毕竟是消费用的操作系统,虽然界面华丽,但是并不稳定,在工业控制设备上用稳定的WINCE和LINUX lz,用MiniGUI吧,编译相当的简单,界面也够你用的了!
另外,MiniGUI最新版本3.0.12已经开源了哦!
可以试试,而且资料很多!
当然,有问题的话,找我也可以帮帮你哦! 试试这个:http://www.tecgraf.puc-rio.br/iup/
IUP
IUP is a multi-platform toolkit for building graphical user interfaces. It offers a simple API in three basic languages: C, Lua and LED. IUP's purpose is to allow a program source code to be compiled in different systems without any modification. Its main advantages are:
high performance, due to the fact that it uses native interface elements.
fast learning by the user, due to the simplicity of its API.
跨平台,简单,使用native元素,不同系统下风格也是一样的。支持C、Lua、LED语言。 Android的出现,就是为了替代这些个,Q什么,G什么,M什么的~ 我的毕设用的就是QT,段错误有可能是库文件的引用不对,建议QT选用的版本不要太高,还有GCC和QT的版本发布日期相差不要太大,我的交叉编译工具链是自己制作的GCC-4.4.6,QT是4.6.3 Zhhu218 发表于 2012-4-11 08:05 static/image/common/back.gif
还是先学习Linux的说,我用的Qt4.5.2版本编译了两三天才可以,可能是我的Linux版本太高,运行出的Qt 的界面 ...
那个楼主的QT版本确实有点那个了,直接在线安装吧。当然,如果要移植,还得下载源代码
页:
[1]