Qtopia是Trolltech 公司为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。
本文介绍的是Qt开发环境建立与Qtopia 虚拟平台,Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。请看内容。
开发模式:
在宿主机RedHat上通过qvfb来模拟帧缓冲
开发完毕后使用Qt-embedded重新编译后下载程序到ARM上运行(ARM上需要安装Qt)
开发所需软件:
- tmake-1.11.tar.gz//编译工具,如progen与tmake
- qtopia-free-1.7.0.tar.gz//QTE的桌面环境程序
- qt-embedded-2.3.7.tar.gz//提供qte的库
- qt-x11-2.3.2.tar.gz//为了生成相应的QT工具,如designer和qvfb等
- e2fsprogs-1.39//解决configure时出现的问题
宿主机Qt的安装:
注:以下安装步骤在Redhat 9系统下测试通过,安装步骤参考了MagicARM2410平台实验手册。
在/zylinux下建立目录 x86-Qtopia 所有的软件包都复制到该目录下
1.安装tmake
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
Tmake配置文件:Tmake.conf
Tmake的模板:app.t 用于生成应用程序的Makefile
lib.t 用于生成库文件的Makefile
subdirs.t 用于创建编译子目录中程序的Makefile
2.安装Qt/X11
- tarxzvfqt-x11-2.3.2.tar.gz
- cdqt-2.3.2/
- exportQTDIR=$PWD
- exportPATH=$QTDIR/bin:$PATH
- exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
- ./configure-static-no-xft-no-opengl
- make
- make-Ctools/qvfb
- mvtools/qvfb/qvfbbin
- cd..
Qt的配置比较复杂 详细查看./configure --help
make -C tools/designer 图形设计器designer
3.解压Qtopia
- tarxzvfqtopia-free-1.7.0.tar.gz
- mvqtopia-free-1.7.0qtopia
- exportQPEDIR=$PWD/qtopia
- exportPATH=$QPEDIR/bin:$PATH
4.安装Qt/Embeded
这里使用了QPE的配置文件
- tarxzvfqt-embedded-2.3.7.tar.gz
- cdqt-2.3.7
- exportQTDIR=$PWD
- exportQTEDIR=$QTDIR
- exportPATH=$QTDIR/bin:$PATH
- exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
- cp../qt-2.3.2/bin/uic$QTEDIR/bin
- cp$QPEDIR/src/qt/qconfig-qpe.hsrc/tools
- (echoyes;echoyes)|./configure-platformlinux-x86-g++-qconfigqpe-qvfb-depths4,8,16,32
- (配置时设置qvfb:./configure-qconfig-qvfb-depths4,8,16,32)
- makesub-src//make-Csrc
- cd..
5.安装Qtopia
- cdqtopia
- cdsrc
- ./configure-platformlinux-x86-g++
(如果环境变量没设好,将会出现错误:
- global1.cpp:39:23:uuid/uuid.h:没有那个文件或目录
- global1.cpp:Instaticmemberfunction`staticQUuidGlobal::generateUuid()':
- global1.cpp:188:`::uuid_generate'undeclared(firstusehere)
- make[1]:***[.obj/linux-generic-g++//global1.o]Error1
- make[1]:Leavingdirectory`/root/x86-qtopia/qtopia-free-1.7.0/src/libraries/qtopia1'
- make:***[libraries/qtopia1]Error2
解决方法:安装 e2fsprogs-1.39
- tarzxvfe2fsprogs-1.39
- cde2fsprogs-1.39
- ./configure-enable-elf-shlibs
- make
- makeinstalllib/uuid/
问题一: 找不到 uuid.h
把e2fsprogs-1.39/lib/uuid 目录拷贝到 qtopia-free-1.7.0/include
问题二: 找不到 -luuid
把e2fsprogs-1.39/lib/uuid/libuuid.a 文件拷贝到 usr/lib 或者 qtopia-free-1.7.0/lib)
- make
- cd../..
6.在PC机上运行QPE
- qvfb&
- qpe&
注:如果运行时找不到某些库,则需要设置库路径:
在/etc/ld.so.conf文件中增加Qt库的路径
0
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
添加完路径后,在/etc目录下以root身份执行ldconfig使Qt的库生效。
程序的运行方式:
1
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
注意:QT默认显示窗口大小为240x320像素,指定其他窗口大小:
2
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
#p#
7.将自己开发的安装在Qtopia中:
1. 在/x86-qtopia目录下建立文件夹hello,并编写
相应的程序,执行:
3
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
编译完后程序生成在$QPEDIR/bin下
2. 设置配置文件hello.desktop并复制配置文件到
$PEDIR/apps/Applications下:
配置文件内容:
4
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
执行命令:
5
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
3. 执行程序:
6
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
4. 修改图标:
设计32*32的PNG图片放到<Qtopia>/pics/inline目
录下,然后用qembed转换
7
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
配置脚本(以上前五步的完整安装,所有需要文件放在/zylinux/x86-qtopia下,执行./build):
8
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
这样安装完后的安置路径为:
9
- tarxzvftmake-1.11.tar.gz
- exportTMAKEDIR=/zylinux/x86-qtopia/tmake-1.11
- exportTMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++
- exportPATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/
安装完毕,开发前需要导出环境变量:
0
- tarxzvfqt-x11-2.3.2.tar.gz
- cdqt-2.3.2/
- exportQTDIR=$PWD
- exportPATH=$QTDIR/bin:$PATH
- exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
- ./configure-static-no-xft-no-opengl
- make
- make-Ctools/qvfb
- mvtools/qvfb/qvfbbin
- cd..
小结:关于Qt开发环境建立与Qtopia 虚拟平台的内容介绍完了。对于Qtopia,它有三个把版本,分别是Qtopia 手机版、Qtopia PDA 版和Qtopia 消费电子产品平台。Qtopia 手机版: 面向嵌入式Linux 的Qtopia 手机版(Qtopia Phone) 是Qtopia 的一个自定义版本用于内存有限的智能手机和功能手机它的用户界面可自定义内存占用量低手机制造商使用它可以创建令人赞叹的图形用户界面从而令手机卓越超群Qtopia 手机版有两个版本键盘驱动和手写笔驱动。
知优网 » Qt开发环境建立与Qtopia 虚拟平台(Qt开发环境)