系统环境为Ubuntu10.04.3,使用的是友善提供的qtopia提供的源码包qtopia-free-src-2.2.0.tar.gz,由于使用高版本的编译器编译该qt图形系统会出现很多编译错误,在这里我们使用了一个补丁qtopia2.2.0.friendlyarm.patch,经本人实际测试,打上补丁后未出现一个编译错误。整个系统包括qtopia的编译以及qtopia应用程序的移植。
一、qtopia2.2.0的编译
(1)qtopia的配置
echo "yes" | ./configure -qte '-embedded -no-xft -qconfig qpe -depths 16,32 -qvfb -system-jpeg -gif' -qpe '-edition pda -displaysize 240x320 -fontfamilies "helvetica fixed micro smallsmooth smoothtimes"' -qt2 '-no-opengl -no-xft' -dqt '-no-xft -thread'
(2) 配置完成后执行make命令进行编译,make install命令进行安装。
(3)安装好以后,在qtopia/目录下会生成image/,接下来拷贝字库,进入qtopia/image/opt/Qtopia/lib/fonts目录,
在该目录下执行命令cp ../../../../../../qt2/lib/fonts/* ./,该命令拷贝qt2/lib/fonts目录下的所有字库文件。
(4)配置环境变量,gedit setenv.sh,输入以下内容:
QTDIR=/opt/qtopia-free-2.2.0/qtopia/image/opt/Qtopia #根据自己的实际路径进行修改
QPEDIR=/opt/qtopia-free-2.2.0/qtopia/image/opt/Qtopia
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR QPEDIR PATH LD_LIBRARY_PATH
(5)运行qtopia,首先执行命令qvfb &启动虚拟帧缓冲工具,
进入qtopia/image/opt/Qtopia/bin/目录执行命令./qpe -qws启动Qtopia即可。
二、qtopia下应用程序的开发与移植
应用程序的开发与编译依赖于已编译好的qtopia,我们以test程序为例进行说明,以下是其详细过程
(1)设置环境变量,执行以下命令
source setQt2Env
source setDqtEnv
source setQteEnv
source setQpeEnv
export QMAKESPEC=$QPEDIR/mkspecs/qws/linux-generic-g++ #针对x86平台的编译器
(2)创建工作目录test,执行designer test.ui命令启动qt设计程序,设计完成后保存退出即可。、
(3)创建main.cpp文件,执行命令gedit main.cpp并输入以下内容
#include <qtopia/qpeapplication.h>
#include "test.h"
QTOPIA_ADD_APPLICATION("test",YourForm)
QTOPIA_MAIN
(4)执行命令qmake -project创建工程文件,执行命令echo TARGET=demo >>test.pro向工程中追加内容。
(5)执行qmake命令创建Makefile文件并编辑该文件,在-qte后面加上-lqpe
(6)执行命令make进行编译。
(7)将test程序复制到Qtopia/bin目录下,并在Qtopia/apps/Application目录下创建test.desktop,内容可仿照
该目录下的其他类似文件。如本人测试时内容如下:
[Translation]
File=QtopiaApplications
Context=My Test
[Desktop Entry]
Comment[]=This is my first test program!
Exec=test
Icon=test
Type=Application
Name[]=My Test
(8)进入Qtopia/pics目录,创建目录test并进入,可将其他目录中的png图片文件拷贝到该目录下,改名为test.png
(9)重新启动qpe进行应用程序的测试即可。
补充说明:x86版本konqueror移植
在编译之前,需要修改qtopia2.2.0的配置选项,将 "helvetica fixed micro smallsmooth smoothtimes"'改为unifont,修改文件
qtopia/src/qt/qconfig-qpe.h,将define QT_NO_CODECS注释掉。 修改konq目录下的konq-embed/dropin/ kglobalsettings.cpp文件,将"helvetica"改为"unifont"。 最后勿忘修改build和build-konq脚本文件,更改相关配置。