test

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

 
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  
基于Qt/Embedded和Qtopia的GUI设计
王丽洁,习勇,魏急波

(国防科技大学 电子科学与工程学院 湖南省 长沙市 410073)

摘要:介绍了Qt/Embedded和Qtopia的体系结构及其交叉编译过程与安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。

关键词:嵌入式系统; GUI;Qt/Embedded; Qtopia; 交叉编译

中图分类号:TP368

     Design of GUI Based on Qt/Embedded and Qtopia
Wang Li-Jie, Xi Yong, Wei Ji-Bo

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: In this paper, the architecture, cross-compiling and installation of Qt/Embedded and Qtopia are introduced. Especially, we focus on how to implement an application program based on Qt/Embedded and how to port an existing application to Qtopia desktop system. The methods introduced in the paper have all been validated in our development platform.

Key words: Embedded System; GUI; Qt/Embedded; Qtopia; Cross-Compiling

1 引言
随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化。如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率。本文详细阐述了在自行开发的嵌入式主板上实现某平台的图形显示终端过程。

2系统平台介绍
根据系统设计需求,本文目的是实现一个具有图形接口界面的嵌入式显示终端,该系统使用嵌入式系统设计技术。硬件上,使用自行开发的基于Samsung S3C2440A CPU的目标板,该CPU使用arm920T内核,其主频可达400Mhz;在软件上,选择嵌入式linux为操作系统,因为它源码开放,而且稳定性与安全性较高。

整个系统软件由引导装载程序(uboot)、 设备驱动(包括帧缓存fb)、嵌入式Linux内核、文件系统(yaffs)、基于QT/Embedded和Qtopia的用户图形界面以及应用程序组成,系统平台结构如图(1)所示。


图(1) 系统平台软件结构图

3 Qt/Embedded和Qtopia 介绍及其开发环境的建立
目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同[1]。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。

Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发[2,3]。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本文选择Qt/Embedded为本系统的GUI。

(1) Qt/Embedded和Qtopia体系结构
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图(2)所示:

 


图(2) Qt/Embedded实现结构

   

Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区[4]。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上。为运行Qt/Embedded,嵌入式Linux内核要支持framebuffer。

Qt/Embedded是Qt的面向嵌入式应用的简化版本,它包括一组完备的GUI类、操作系统封装、数据结构类、功能类和组合类。大部分Qt的应用程序可以经过简单的编译与重设窗口大小移植到Qt/Embedded。

Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt
Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,如地址本、图像浏览、Media播放器等,还包括娱乐和配置工具,广泛用于PDA等掌上设备。Qtopia平台由Qtopia 库(Qt/E,libqpe,libqtopia1,qtopiapim)和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序。

(2) Qt/Embedded和Qtopia的交叉编译与运行
整个GUI系统的构建需要对Qt/Embedded、Qtopia依次分别编链,然后有机地整合在一起。Qt/Embedded为Qtopia提供了底层支持,GUI系统的图形库窗口组建都由Qt/Embedded实现。

在构建GUI时用于Qt开发的典型工具如下:

l         tmake:跨平台的Makefile生成器。

l         moc:用于Qt C++扩展的metra-object编译器。

l         uic:从XML文件生成代码的用户界面编译器。

l         designer:用于设计窗口组建的应用程序。

Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下:

l         qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。

l         qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。

由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树:

l         tmake-1.13.tar.gz:用来得到tmake工具。

l         qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。

l         qt-x11-2.3.2.tar.gz:Qt的X11版本。

l         qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。

l         e2fsprogs-1.38.tar.gz:为了得到qtopia所需的uuid.h和libuuid.so。

假设将上述源码树放在同一目录下,例如:/root/qtopia,并依次解压,然后进行编译,步骤如下:

①设定tmake的环境变量如下:

export TMAKEPATH=/root/qtopia/tmake-1.13/lib/qws/linux-arm-g++

此处指定了tmake在生成Makefile时使用arm交叉编译。

②编译qt-x11,其目的是生成moc、uic、qvfb、designer,并将它们放在qt-embedded/bin目录下。

③配置qt-embedded编译选项,命令为:

./configure -platform linux-arm-g++  -qconfig qpe -qvfb -depths 4,8,16,32.

此处-platform linux-arm-g++表示在arm平台上进行交叉编译;-qconfig local表示使用src/tools/qconfig-local.h;-depths 4,8,16,32表示需要qt支持的显示颜色深度。

④使用make命令编译qt-embedded,用来生成Qt库(libqte.so)。

⑤配置并交叉编译Qtopia,生成应用程序以及桌面环境。

假设编译完成后将qt和qtopia相关的库及所需文件分别存放于目标板文件系统的/opt/qt和/opt/qtopia下,运行Qtopia的方法是:

①设置QTDIR、QPEDIR和键盘鼠标等环境变量

  export QTDIR=/opt/qt

  export QPEDIR=/opt/qtopia

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=USB:/dev/input/mouse0

②开启qpe,也就是在Linux图形模式下执行/opt/qtopia/bin/qpe &

这样就可以在显示终端上看到qtopia桌面环境了。

4 Qt/Embedded和Qtopia下应用程序的实现
  

GtestTESTTEST_F宏的用法 gtest测试 阅读详情

相关推荐

gtest语法(一)TESTTEST_F宏

TESTTEST_F

qq_26849933的博客 5656

Google Test 使用笔记(三)TEST宏初级使用

Google Test框架 TEST宏初级使用

nenchoumi3119的博客 1685

CANoe教程 | 自动化测试功能-Test Module/Test Unit

概述 CANoe的测试模块包括Test Module和Test Unit两大组件,并且集成了TFS测试功能集(Test Feature Set)和TSL测试服务库(Test Service Library)来帮助用户实现高效的自动化测试。 TFS是CANoe扩展出来的一系列测试功能函数,包括测试报告的输出函数等。 TSL包含一系列的检测函数(Check Function)、激励函数(Stimulus Functions)、状态报告函数(Status Report Functions)以及检测控制函数(Ch

5083

t-test,z-test原理

目录 Population & sample Population average treatment effect(PATE) Hypothesis Testing, t-test & p-value Execute t-test via Excel & Python z-test Population & sample Population是全体数据集,Sample是从Population中随机抽取的实验数据集,我们想通过sample的特征最终推断出popu

小白的博客 3410

如何分文件编写Boost Testtest case

如何分文件编写Boost TestTest Case

Absorb Like A Sponge 2592

GtestTEST宏的用法

TEST

sinat_31608641的博客 2754

gtest Test_F 和Test 区别

一般来说简单的测试用TEST简单测试TESTCpp代码#include <gtest/gtest.h>  int Factorial( int n )  {    if(n==2) return 100; //故意出个错,嘻嘻    return n<=0? 1 : n*Factorial(n - 1);  }  //用TEST做简单测试  TEST(TestFactorial,...

下一站浮华的博客 9792

【C++ 单元测试】 GTest 指南:剖析 TEST_P 与 TYPED_TEST

在日常开发中,Google Test(GTest)已经成为C++单元测试领域的事实标准。从最初的 `TEST` 与 `TEST_F` 出发,很多团队逐渐发现针对不同类型或不同输入参数进行大规模测试时,往往需要更灵活的方式来组织测试用例,这就是 `TEST_P` 和 `TYPED_TEST` 的诞生背景。毕竟,正如荣格所言,“理解越多,也就越能够包容”,对测试框架的深入了解也能帮助我们更好地构建健壮的代码。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1686

Google Test入门教程

Google Test入门教程断言Test 架构一个简单的例子 断言 Assert:失败后终止 Expect:失败后继续 ASSERT_TRUE(condition); ASSERT_FALSE(condition); ASSERT_EQ(val1, val2); ASSERT_NQ(val1, val2); 失败后打印错误信息 EXPECT_EQ(val1, val2) << "val1 and va2 differ; Test 架构 TEST TestSuitName = 测试的函数名

I_ren的博客 1891

Google Test 入门(二)

本篇主要介绍Google Test 的测试示例。

ClaireQi的博客 895

Python利用scipy实现T-TEST和Z-TEST源代码

使用excel的T.TEST和Z.TEST计算不方便,使用python的包scipy可以方便实现计算,但是网上有参考价值的资料少,特此总结源代码,直接展示常用方法。 一、T-TEST from scipy.stats import ttest_1samp, ttest_ind, ttest_rel import scipy from scipy import stats 上面是常用的导入,下边对如何使用进行说明。 rvs1 = stats.norm.rvs(loc=600, scale=13.14, siz

cs的博客 2190

linux geogle test教程及TEST_F,TEST_P宏用法

这样,同一个TestFixtureName下的每个TEST_F都会先执行SetUp,最后执行TearDwom。从上图可以看到,先使用第一个命令查到所有testcase的名字,在通过第二条命令筛选特定的testcase运行,并且可以使用通配符。如果发现自己编写了两个或多个对相似数据进行操作的测试,可以使用 test fixture 来为多个测试重用这些相同的配置。,直接执行,就全跑一遍,很耗时,有时候需要只测试某个case,怎么只运行某个测试用例呢?函数及其判断条件,如下表。,并根据断言失败的种类,

荣耀与梦想来日方长 3644

gtest基础使用06:Google Test自带示例三:Test Fixture

gtest Test Fixture的学习

thexiaosi的博客 1211

Gtest入门2 GtestTEST宏的用法

Googletest宏的用法(整理)1. TestCase的介绍2. TEST宏3. TEST_F宏4. TEST_P宏5. EXPECT_*和ASSERT_*的宏介绍5.1.gtest之断言5.2. gtest断言分类5.2.1 Boolean断言类型5.2.2 二元值断言类型5.2.3 字符串断言类型6. EXPECT_CALL7. 调用测试 1. TestCase的介绍 本章节主要介绍在使用...

sevenjoin的博客 1万+

TESTTEST_F 区别

#include  int Factorial( int n )  {   if(n==2) return 100; //故意出个错,嘻嘻   return n  }  //用TEST做简单测试  TEST(TestFactorial, ZeroInput) //第一个参数是测试用例名,第二个参数是测试名:随后的测试结果将以"测试用例名.测试名"的形式给出  {   E

wowolook的专栏 2万+

【Statistics】HYPOTHESIS TEST(SIGNIFICANCE TEST)

本文着重梳理 假设检验 HYPOTHESIS TEST(SIGNIFICANCE TEST),通过 逻辑性知识 和 概念性知识 两部分厘清该重点内容。 1.Logic of Hypothesis Test 1) Set up Hypothesis 2) Set up Significance level 3) Take Sample and Calculate 4) Make Conclus...

sinat_37331885的博客 1227

【C++】googletest_TEST/TEST_F

TEST/TEST_F宏

YZJincsdn的博客 737

AB Test & AA Test

AB Test & AA Test前言一、AB Test1. AB Test sampling2. AA Test3. AB Testing 前言 AA Test: 在进行AB Test之前,对AB Test的sampling进行测试,分析两个group之间存在的本源性差异。 AB Test: 为同一款产品设计两个不同的执行方案进行投放测试。方案中控制一个变量不相同,对照结果择优。 一、AB Test 1. AB Test sampling 常见的sampling维度: Geo/ Time S

the_why_cafe的博客 3467

Google Test 使用笔记(四)TEST宏与异常

Google Test框架TEST宏与异常处理

nenchoumi3119的博客 1027
上一篇: 行和测试Qtopia应用程序的系统程序
lideming
博客等级 码龄20年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值