| 
		    
                    
   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开发的典型工具如下: 
    - tmake:跨平台的Makefile生成器。 
 
    - moc:用于Qt C++扩展的metra-object编译器。 
 
    - uic:从XML文件生成代码的用户界面编译器。 
 
    - designer:用于设计窗口组建的应用程序。 
 
 
  Qtopia的开发工具包SDK(Software Development Kit)是Qtopia开发环境的核心部分,编译后得到创建应用程序所需的软件包如下: 
    - qvfb(virtual frame buffer):X窗口用来运行和测试Qtopia应用程序的系统程序。 
 
    - qpe(Qtopia executable):用来处理所有的用户程序界面[2,5]。 
 
 
  由于我们使用的是ARM CPU,因此需要对Qt/Embedded和Qtopia开发工具包进行交叉编译。本文使用arm-linux-gcc-3.3.2来建立交叉编译环境。为了对Qt/Embedded和Qtopia进行交叉编译,需要使用如下的源码树: 
    - tmake-1.13.tar.gz:用来得到tmake工具。 
 
    - qt-embedded-2.3.7.tar.gz:Qt的嵌入式版本。 
 
    - qt-x11-2.3.2.tar.gz:Qt的X11版本。 
 
    - qtopia-free-1.7.0.tar.gz:官方网站提供的Qtopia免费版。 
 
    - 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,生成应用程序以及桌面环境。 
		    
                       
		      
		      
		   |