基于ARM LINUX的嵌入式GUI的研究和移植
QT的移植
QT的编译步骤比较复杂。Qtopia的根目录下有README.html文件介绍了PC机上编译的步骤及参数。因此,本文主要描述在编译成以ARM为目标平台时有所区别的几个步骤及参数。下载Qt/Embedded、Qt/X11和Qtopia三个包并分别解压。这三者的编译配置都是通过执行相应根目录下的configure文件并传递相关参数来实现,另外在Qtopia目录下src/qt/qconfig-qpe.h文件中要定义一些相关的宏,这样在编译时编译器会根据所定义的宏选择需要的代码来进行编译。比如,目标系统所使用的触摸屏实现方式与IPAQ类似,若要使QT将所支持的代码编译进来,则需在qt2config-qpe.h中定义宏QT-QWS-IPAQ。首先,我们在执行configure对QT/Embedded进行配置时,传递了三个参数-xplatformlinux-arm-g++、-qconfigqpe和-no-qvfb。其中第一个参数表示,编译后二进制文件执行时所在的目标平台类型;第二个参数告诉编译器配置头文件是在src/tools/目录下叫做qconfig-qpe.h,通常这个文件就是Qtopia目录下src/qt/qconfig-qpe.h的一个拷贝;第三个参数表示在编译时不需要编译qvfb工具,当目标系统不支持Framebuffer时,在执行启动Qtopia之前先通过执行qvfb来产生一个虚拟的Framebuffer,这时再启动Qtopia相应的内容就会显示在qvfb上。在对Qtopia进行配置时,只传递了一个参数:-platformarm-linux-g++,表示目标平台是ARM平台。当然在上述配置过程中还可以使用其它一些参数,这些参数可以通过传递-help参数给configure来查询。在配置并编译完之后,将Qtopia目录下的运行时相关目录全部打包并下载到目标系统上,设置了相应的环境变量(比如QPEDIR、QTDIR和LD-LIBRARY-PATH等)后,就可以执行。当然目标系统上的特殊硬件的支持需要通过修改QT/Embedded下的对应源程序来完成。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)linux相关文章:linux教程
评论