基于mini2440的qtopia应用程序开发之一:搭建平台+友善之臂的错误分析

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

本文内容:

1:分析Qt、Qt/E 、qtopia的关系。

2:如何搭建qtopia开发平台。

3:分析友善之臂的错误以及基于此理解x86-qtopia和arm-qtopia.

 

 

其实搭建环境本身是个比较容易理解的过程,只不过由于Qt、Qt/E 、qtopia版本繁多,相互之间又有一

些不兼容的问题,关于这三者之间的关系,
参考:http://blog.csdn.net/hadise/archive/2010/03/14/5378378.aspx
加上网上的攻略很多,都是针对不同版本不同环境的,有些又是错的,让人一下子不知

所措。那么,就让我来理一理吧。方法有很多种,网上说得比较全,我只说友善的这种方式。

 

最终目的:
qtopia应用程序开发,就是说,ARM开机之后,在桌面上要有我的应用程序图标,点击后可以运行.

 

环境:
Fedora9
vmware6.5
mini2440开发板
arm-linux-gcc 4.3.2

 

方法:
A:先搭建X11平台的qt程序开发平台.
B:安装Qt/E
C:在PC平台写应基于Qt的应用程序,编译运行无错。
D:将源代码拷贝到Qt/E(qtopia)安装目录,然后根据qtopia的特点稍做修改,在X86平台编译,使用

qvfb模拟运行无错。
E:将应用程序源代码拷贝到ARM平台的Qt/E安装文件夹,编译生成可执行文件。
F:移植到板子上。

 

以下一条一条分析如何实现。


A:先搭建X11平台的qt程序开发平台.

针对我们的目的,其实这一步也不是必须的。如果安装Qt仅仅是为了后期的qtopia应用程序开发做代码编

写测试,也可以在WINDOWS平台做。因为Qt是夸平台的。在windows下的话,由于有VS插件这种工具,相信

做Qt开发还是比较容易的(我还没有尝试过)。
不过由于qtopia主要是针对LINUX,所以在X11平台安装qt,开发流程还是更让人能够理解。另,也可以单

纯学习LINUX QT程序设计。
我自己尝试过下载qt4.6.2安装,结果make的时候,耗费了太多时间(大概4小时),而且最终虚拟机的空

间不够用了,提示:no space left!失败。因此建议以后大家不要安装4.6版本的qt,除非你硬盘够大。
推荐安装Qt3.2,安装方法参考Qt Assistant.
或者参考http://doc.trolltech.com/3.0/install-x11.html (qt官方网站 qt3.0安装方式。qt3版本都

用这种方式安装)

 

B:安装Qt/E(分析友善之臂的错误以及基于此理解x86-qtopia和arm-qtopia.)

关于这个,就得说说友善的方法了。参考友善的mini2440用户手册。
友善在/opt/FriendlyARM/mini2440/这个目录下,产生了两个子目录,分别是x86-qtopia和arm-qtopia.

可以在两根目录下的build脚本中看出着两个目录的区别。

 

 

 

                                     图1:/opt/FriendlyARM/mini2440/x86-qtopia/build

 

 

                                         图2:/opt/FriendlyARM/mini2440/arm-qtopia/build

 

不难发现:arm-qtopia 和 x86-qtopia下build脚本的内容比,只是少了
cd ..

/bin/rm qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/lib/fonts/helvetica_*
tar xfvz fonts.tar.gz -C qtopia-2.2.0-FriendlyARM/qtopia/image
这几句。
不难发现,其实都是对qtopia-2.2.0.tar.gz解压之后安装的。
那么,这两个目录的区别到底体现在哪里呢?
我们继续看它的示例程序hello.
首先看/opt/FriendlyARM/mini2440/x86-qtopia/hello/build这个脚本的内容

 

                                       图3:/opt/FriendlyARM/mini2440/x86-qtopia/hello/build

可以看出,首先执行/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv设置环境变量,然后根据 hello.pro 文件自动生成Makefile,然后make 生成可执行程序。

再看/opt/FriendlyARM/mini2440/arm-qtopia/hello/build这个脚本的内容

 

                                       图4:/opt/FriendlyARM/mini2440/arm-qtopia/hello/build

看出区别所在了吧。就是qmake后面所跟的参数中,X86是linux-generic-g++,ARM是linux-arm-g++。注意到setQpeEnv这个脚本的内容基本一样,那么,着两个目录的区别难道就仅仅在这里?这个我以后再验证。有答案了再写出来。

换句话说,如果区别仅仅在这里,那么,完全没必要搞两个文件夹。只不过我在编译应用程序的时候,写脚本注意区分就行了。那么,关于qtopia平台搭建,可以使用友善的方法,也可以只产生一个目录,这个需要后期验证。

具体的安装方法在图一的build脚本中已经写明了。

C、D、E、F4各部分,在以后的文章中再讲了。

下面要说说友善的一个问题

          按照友善的手册,在PC平台模拟的hello程序,运行的时候,看到qtopia的框架,但是中间是黑屏

         分析这个问题有利于理清开发流程。原因及如下:

        在刚开始的时候,hello目录中是没有Makefile的,这个Makefile文件,是用qmake生成的,见hello目录中build内容。因此它以来与hello.pro这个文件。

         那么我们来看看hello.pro这个文件的内容。如下:

 

                                   图5:/opt/FriendlyARM/mini2440/x86-qtopia/hello/hello.pro

           注意到生成的可执行文件名字叫 hello ,路径在 $(QPEDIR)/bin/  下面。顺带说一下,在arm-qtopia这个目录中的相应hello.pro的内容,跟这个一模一样。

          我们再看看hello目录下的run-hello脚本内容

 

                                           图6:/opt/FriendlyARM/mini2440/x86-qtopia/hello/run-hello

          可以看出,在PC模拟的时候,首先调用了qvfb工具,然后设置环境变量,最后运行hello.问题就处在最后这句话了。因为run-hello的当前目录不是hello的所在目录,所以脚本找不到hello,自然就成了黑屏。

         解决方法:将最后一句话改为$(QPEDIR)/bin/hello -qws!

        保存,运行./run-hello ,ok!

        下一步打算验证我对arm-qtopia和x86-qtopia区别的理解!

QEMU模拟Mini2440开发运行环境(二):NFS挂载根文件系统 紧接着第一篇(http://blog.csdn.net/maxwell_nc/article/details/44279553),我们使用网络文件系统NFS挂载根文件系统 原创文章欢迎转载,请保留出处。 若有任何疑问建议,欢迎回复。 邮箱:Maxwell_nc@163.com 阅读详情

相关推荐

友善Mini2440 Linux root_qtopia 64M(本人亲测成功)

友善Mini2440 Linux root_qtopia 64M

友善 mini2440 root_qtopia 文件系统启动过程分析

友善 mini2440 root_qtopia 文件系统启动过程分析   2010-05-06 21:49:45|  分类: 嵌入式点滴|字号 订阅         本文简介:       友善提供的根文件系统十分具有创新意义,其功能之强大,先进,实用至今保持在领先地位, 网友 kasim 对其作了详尽的剖析,  道出了很多“秘密” 对于任何致力于嵌入式 L

守正出奇 2851

micro2440最详尽手册——友善mini2440也可参考)下

micro2440最详尽手册——友善mini2440也可参考)micro2440最详尽手册——友善mini2440也可参考)

Ubuntu下安装友善smart210的官方qt开发qmake错误解决方法

问题:ubuntu添加qmake 出现错误 qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’: No such file or directory。出错原因:没有安装qt4库,/usr/lib/x86_64-linux-gnu/qt4解放方法:如果自己编译qt库,那就需要手动修改路径cd /usr/lib/x86_64-l

daxian521的专栏 783

(整理)友善x86-qtopia编译问题(luuid、x86-qtopia友善

摘要: 在ubuntu8.04下编译友善的x86-qtopia时,遇到“/usr/bin/ld: cannot find -luuid”的问题,网上也搜到了解决的办法,现将其整理一下。 简介: x86-qtopia版本:qtopia-2.2.0 编译40分钟左右后弹出如下错误 1 x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2...

weixin_30642561的博客 141

友善qtopia2.2.0加入多线程支持

本文章基于友善提供的arm版本的qtopia2.2.0和x86版本的qtopia2.2.0,前提是系统中已经安装好交叉编译器。 要实现多线程,主要是要获得带多线程支持的动态链接库libqte-mt.so.2,libqte-mt.so.2需要通过编译qt获得,下面是编译libqte-mt.so.2的方法(arm和x86版本方法类似,一起叙述)。 1) 将友善提供的qt源码解压,按照友善

1939

QT for android 获取PDA扫码的广播数据

QT for android 获取PDA扫码的广播数据 前记 笔者接触到的PDA扫码枪,有三种, 一种是蓝牙枪,连接到手机或者电脑上之后,可以直接把扫描到的数据传送到焦点所在的文本框中;另外两种是普通的掌上扫码枪,笔者手中的一款也可以和蓝牙枪一样,操作系统中有设置,可以把扫描到的数据直接送到焦点所在的文本框中;还有一款是操作系统中没并有这个设置,而是通过Android的广播机制来进行发送,而前一种实际也是利用广播机制。 在Android Studio中,这一机制还是比较容易实现的,下面这一段Kotlin代码

sdustzk的博客 7074

基于mini2440qtopia程序设计之二:如何在qtopia创建快捷方式

      经过今天的验证,发现上一篇《基于mini2440qtopia应用程序开发之一》中我以为的x86-qtopia和arm-qtopia两个目录的区别不是那么小。在arm-qtopia中我测试了简单的hello程序,改编了它的.pro文件、build文件、等,但是还是不能看到模拟出来在PC段运行的效果。后来又仔细看了x86-qtopia和arm-qtopia两个目录下的build文件,发现

hadise的专栏 4287

mini2440编译x86-qtopia(x86-qtopia)(友善

在linux下,编译qtopia是件很折腾人的事情,因为它要依赖一 些库,但这些库在刚装好的linux系统下都是没有的;本人也是折腾了两周,才算把qtopia编译出来,当屏幕上qvfb里显示qtopia的桌面时,心情那个激动啊。 介绍:     linux环境:VMware 7+ubuntu10.10     qtopia   : 友善mini6410    x86-qtopia-2010

默默的努力 1119

linux-2.6.32在mini2440开发板上移植(22)之qtopia4.4.3手机版移植(english version)

qtopia4.4.3手机版在mini2440上的移植 编者:原来也移植过QT,对这个还是总结了些经验的。因为mini2440开发板自带的是PDA版本的QTOPIA,所以我决定移植一个手机版本试试。为什么选择这个版本的,其实我没有进行特意选择,在百度上搜了下,发下这个版本有人在mini2440上成功移植,也就是说有案列,这样可以参考人家的案例,在出问题时候,解决能快点。因为这个必定没作为项目开发

铸剑娃的专栏 2762

mini2440 x86-qtopia2.2.0 编译./run-hello错误改法

今天照着友善的手册编译x86-qt,用手册里介绍的hello程序实验,在刚刚编译完的 hello 目录下,./run-hello,总是出现错误 [root@localhost hello]# ./run-hello  Using display 0 ./run-hello: line 17: hello: command not found 去网上查了一下,改法如下:

见习馒头 1341

nux-2.6.32在mini2440开发板上移植(22)之qtopia4.4.3手机版移植(english version)

nux-2.6.32在mini2440开发板上移植(22)之qtopia4.4.3手机版移植(english version) 分类: Mini2440系统移植专题2013-04-06 20:55 244人阅读 评论(0) 收藏 举报 qtopiaqvfbmini2440qtopia4.4.3QT qtopia4.4.3手机版在mini2440上的移植 编者:原来也移植

metuu的专栏 965

mini2440基于qtopia2.2的电子词典ZBEDIC的移植过程

根据这个地址http://bedic.sourceforge.net/ 知道这个ZBEDIC原先是使用在Sharp Zaurus 这个PDA的qtopia上面的,那么移植到mini2440上面去,也是可以的,不过得经过下面这些修改才可以: zbedic 和 libbedic 的源码就到http://sourceforge.net/projects/bedic/files/

star2523的专栏 1009

Mini2440移植qt-extended4.4.3

因为项目需求,前段时间在Mini2440上移植了qt-extended4.4.3,现将移植过程简单的说下,希望对做相关的工作的朋友有帮助。 一、开发环境   上位机:Fedora9.0    交叉编译器版本:arm-linux-gcc4.4.3(友善提供,在此说明下:arm-linux-gcc4.4.3或arm-linux-gcc4.4.2是支持arm9的,建议在arm9上移植不要使用友

embeddedman的专栏 6116

Qtopia-core-4.3.4在mini2440上的交叉编译移植

转自:http://zhanzhiwei2009.blog.163.com/blog/static/126127332200992283533727/Qtopia-core-4.3.4在mini2440上的交叉编译移植(成功)默认分类   2009-10-22 20:35   阅读56   评论0   字号: 大大  中中  小小 主机:虚拟机装有Fedora1

lhb31883149的专栏 616
上一篇: Qt Qt/E Qtopia 的关系
下一篇: 基于mini2440的qtopia程序设计之二:如何在qtopia创建快捷方式
hadise
博客等级 码龄17年 50粉丝 39原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值