织梦CMS - 轻松建站从此开始!

罗索

Qtopia 应用程序编译及仿真

落鹤生 发布于 2010-09-26 17:55 点击:次 
qtopia2.2.0 版本自带了一些编译的环境变量的配置脚本,可以自动帮我们配置并编译qt-x11-2.x,qt-x11-3.x,qte-2.x 和qtopia-2.2.0,并进行目录结构的组织
TAG:

一、编译过程
    解压qtopia-free-2.2.0.tar.gz,并将解压后的文件夹改名为qtopia-host.
    编译方法以及参数设置可以查看顶层目录下的configure脚本文件的内容以及帮助信息.
#./configure -qte no-keypad -qpe pda
#make
#make install
    qtopia2.2.0 版本自带了一些编译的环境变量的配置脚本,可以自动帮我们配置并编译qt-x11-2.x,qt-x11-3.x,qte-2.x 和qtopia-2.2.0,并进行目录结构的组织.
注意:
(1)qt-x11-2.x和qte-2.x是由源码包中的qt2目录编译得到; qt-x11-3.x是由dqt编译得到;
(2)在编译前进行configure 时可以采用-prefix 选项来指定安装时的image 目录(可参考QT官方相关文档:Build from Source以及running Qtopia).

二、make install 之后的image 文件夹
    make install之后会在./qtopia/image下有image文件夹,即./qtopia/image/opt/Qtopia 目录.目录下有bin,lib,etc,apps...等等文件夹,实际上对应于要烧录进嵌入式文件系统的文件结构组织.
-> lib 下有运行qtopia 应用程序的全部库,如libqte,libqpe,libqtopia 等等,注意由于是主机版,没有编译触摸屏的库,因此这里没有libts.
-> bin下则是qtopia 应用程序,包括qpe,quicklaucher 等,另外还有clock,addressbook....
-> 用于在主机上仿真PDA 的qtopia 环境的startdemo 脚本也在这个bin 目录下,注意,在./qtopia/bin 下只有qpe,quicklaucher 等服务程序,而没有clock,addressbook...等应用程序,因此,如果象qtopia1.7.0一样设置环境变量,先运行qvfb再运行这个qpe,图标对应的应用程序是无法执行的.而startdemo 会自动调用qvfb 并且将image 下的qtopia 文件系统加载到qvfb 中运行.关于环境变量的设置,后面介绍.

三、在主机上开发并仿真qtopia 应用程序
    开发应用程序所需要的:
(1)工具:qvfb(仿真),qmake(生成makefile),uic(编译ui 文件),designer(图形化界面设计工具)
(2)库:libqte, libqpe, libqtopia 等(与运行时所需库相同,因为是动态共享库)
(3)与库对应的头文件!
    因此在开发qtopia 应用程序时,必须将这些环境变量设置好.可编写脚本setdevenv.sh 如下:
#!/bin/sh
TMAKEDIR=/opt/qtopia-host/tmake
TMAKEPATH=/opt/qtopia-host/tmake/lib/qws/linux-generic-g++
QMAKESPEC=qws/linux-generic-g++
QPEDIR=/opt/qtopia-host/qtopia/
QTDIR=/opt/qtopia-host/qt2/
PATH=$TMAKEDIR/bin:$QPEDIR/bin:$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QPEDIR/image/opt/Qtopia/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TMAKEDIR TMAKEPATH QTDIR QPEDIR PATH LD_LIBRARY_PATH QMAKESPEC
    可以看到,所用的lib 虽然是设置为image下的lib,但image下却没有相关的头文件(没有include 文件夹,image 只提供程序运行支持,不提供源码编译以及链接支持),因此,必须另外设置QPEDIR和QTDIR,以在编译qtopia 应用程序时,可以找到相关的头文件.
    在这个脚本的环境变量设置下,编译好qtopia应用程序后,可以使用startdemo来调用qvfb进行仿真,界面如下.
 
    如果先启动qvfb,再启动qpe,虽然可以看到仿真界面,但其自带的一些应用程序是无法运行的,因为qpe加载QPEDIR指定的文件系统目录,而qtopia2.2.0的应用程序可执行文件放在image 下的bin 目录中;而startdemo 则总是加载image 下的Qtopia 文件系统.因此,使用startdemo仿真时,所开发的应用程序以及.desktop和图标等也要放在image下相应的目录下.
    关于工具列表:
/opt/qtopia-host/qt2/bin/designer
/opt/qtopia-host/qt2/bin/qvfb
/opt/qtopia-host/qt2/bin/uic
/opt/qtopia-host/qtopia/bin/qmake (1.06c-Qtopia, Qt 3.2.1)
    注意在/opt/qtopia-host/dqt/bin/下也有qmake(1.07a, Qt 3.3.5),不过两者版本不同.可以使用./qmake -v命令查看.
    如果要使用qvfb 下启动qpe 的办法来仿真(好处是可以配置qvfb 窗口大小),则需要将
qvfb 链接到PATH 内,并编写环境变量配置脚本setsimenv.sh如下:
#!/bin/sh
QPEDIR=/opt/qtopia-host/qtopia/image/opt/Qtopia
QTDIR=$QPEDIR
PATH=$QPEDIR/bin:/opt/qtopia-host/qt2/bin:$PATH
LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
export QPEDIR QTDIR PATH LD_LIBRARY_PATH
    仿真时输入命令:
#qvfb&
#qpe&
    仿真界面如下:
 

四、关于Qtopia2.2.0 的文件系统组织结构
    '/'代表$QPEDIR
    应用程序可执行文件example -> /bin/example
    应用程序qtopia 桌面图标example.png -> /pics/example/example.png (32*32pixels)
    应用程序.desktop文件 -> /apps/Applications/example.desktop
    注意.desktop文件的格式与qtopia1.7.0版本稍有不同,例如clock.desktop:
[Translation]
File=QtopiaApplications
Context=Clock
[Desktop Entry]
Comment[]=A Clock Program #应用程序说明
Exec=clock #/bin下可执行文件名
Icon=Clock #/pics/clock/Clock.png,不用写后缀.png
Type=Application #qtopia 程序类型(Application/Game/Setting)
Name[]=Clock #桌面图标下显示的名字

五、Qtopia 应用程序在主机上仿真运行
    如果使用上面的setsimenv.sh进行环境变量的设置,可以有两种方式进行仿真:
(1)先启动qvfb:#qvfb&
    再将应用程序example作为qte服务程序运行:#./example -qws
(2)将应用程序example 作为应用程序添加到qtopia 相关目录(包括可执行文件,图标,.desktop文件),然后启动qvfb再启动qpe来加载qtopia桌面环境,点击example桌面图标运行程序.也可以使用startdemo进行加载.
    如果使用上面的setdevenv.sh进行环境变量的设置,在第二种方法中,只能用startdemo 加载.

(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201009/10214.html]
本文出处:网络 作者:秩名
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容