Qt开发环境建立与Qtopia 虚拟平台

移动开发
Qtopia是Trolltech 公司为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。

本文介绍的是Qt开发环境建立与Qtopia 虚拟平台,Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。请看内容。

开发模式:

在宿主机RedHat上通过qvfb来模拟帧缓冲

开发完毕后使用qt-embedded重新编译后下载程序到ARM上运行(ARM上需要安装Qt)

开发所需软件:

  1. tmake-1.11.tar.gz                //编译工具,如progen与tmake  
  2. qtopia-free-1.7.0.tar.gz       //QTE的桌面环境程序  
  3. qt-embedded-2.3.7.tar.gz   //提供qte的库  
  4. qt-x11-2.3.2.tar.gz               //为了生成相应的QT工具,如designer和qvfb等  
  5. e2fsprogs-1.39                  //解决configure时出现的问题 

宿主机Qt的安装:

注:以下安装步骤在Redhat 9系统下测试通过,安装步骤参考了MagicARM2410平台实验手册。

在/zylinux下建立目录 x86-qtopia 所有的软件包都复制到该目录下

1.安装tmake

  1. tar xzvf tmake-1.11.tar.gz   
  2. export TMAKEDIR=/zylinux/x86-qtopia/tmake-1.11   
  3. export TMAKEPATH=/zylinux/x86-qtopia/tmake-1.11/lib/qws/linux-x86-g++   
  4. export PATH=$PATH:/zylinux/x86-qtopia/tmake-1.11/bin/  

Tmake配置文件:Tmake.conf

Tmake的模板:app.t 用于生成应用程序的Makefile

lib.t 用于生成库文件的Makefile

subdirs.t 用于创建编译子目录中程序的Makefile

2.安装Qt/X11

  1. tar xzvf qt-x11-2.3.2.tar.gz   
  2. cd qt-2.3.2/   
  3. export QTDIR=$PWD   
  4. export PATH=$QTDIR/bin:$PATH   
  5. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH   
  6. ./configure -static -no-xft -no-opengl   
  7. make   
  8. make -C tools/qvfb   
  9. mv tools/qvfb/qvfb bin   
  10. cd ..  

Qt的配置比较复杂 详细查看./configure --help

make -C tools/designer 图形设计器designer

3.解压Qtopia

  1. tar xzvf qtopia-free-1.7.0.tar.gz   
  2. mv qtopia-free-1.7.0 qtopia  
  3. export QPEDIR=$PWD/qtopia   
  4. export PATH=$QPEDIR/bin:$PATH 

4.安装Qt/Embeded

这里使用了QPE的配置文件

  1. tar xzvf qt-embedded-2.3.7.tar.gz   
  2. cd qt-2.3.7   
  3. export QTDIR=$PWD   
  4. export QTEDIR=$QTDIR   
  5. export PATH=$QTDIR/bin:$PATH   
  6. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH   
  7. cp ../qt-2.3.2/bin/uic $QTEDIR/bin   
  8. cp $QPEDIR/src/qt/qconfig-qpe.h src/tools   
  9. (echo yes; echo yes)|./configure -platform linux-x86-g++ -qconfig qpe -qvfb -depths 4,8,16,32   
  10. (配置时设置qvfb: ./configure -qconfig -qvfb -depths 4,8,16,32)  
  11. make sub-src //make -C src   
  12. cd ..  

5.安装Qtopia

  1. cd qtopia   
  2. cd src   
  3. ./configure -platform linux-x86-g++  

(如果环境变量没设好,将会出现错误:

  1. global1.cpp:39:23: uuid/uuid.h: 没有那个文件或目录  
  2. global1.cpp: In static member function `static QUuid Global::generateUuid()':  
  3. global1.cpp:188: `::uuid_generate' undeclared (first use here)  
  4. make[1]: *** [.obj/linux-generic-g++//global1.o] Error 1  
  5. make[1]: Leaving directory `/root/x86-qtopia/qtopia-free-1.7.0/src/libraries/qtopia1'  
  6. make: *** [libraries/qtopia1] Error 2 

解决方法:安装 e2fsprogs-1.39

  1. tar zxvf e2fsprogs-1.39  
  2. cd e2fsprogs-1.39  
  3. ./configure -enable-elf-shlibs  
  4. make  
  5. make install lib/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)

  1. make   
  2. cd ../..  

6.在PC机上运行QPE

  1. qvfb &  
  2. qpe & 

注:如果运行时找不到某些库,则需要设置库路径:

在/etc/ld.so.conf文件中增加Qt库的路径

  1. /zylinux/x86-qtopia/qt-2.3.7/lib   
  2. /zylinux/x86-qtopia/qtopia/lib  

添加完路径后,在/etc目录下以root身份执行ldconfig使Qt的库生效。

程序的运行方式:
 

  1. ./qvfb &   
  2. /canvas –qws   (一般调试时采用这种方式)  

注意:QT默认显示窗口大小为240x320像素,指定其他窗口大小:

  1. qvfb -width 640 -height 480 & 

#p#

7.将自己开发的安装在Qtopia中:

1. 在/x86-qtopia目录下建立文件夹hello,并编写

相应的程序,执行:

  1. make  

编译完后程序生成在$QPEDIR/bin下

2. 设置配置文件hello.desktop并复制配置文件到

$PEDIR/apps/Applications下:

配置文件内容:

  1. [Desktop Entry]   
  2. Comment=An Hello Demo.   
  3. Exec=hello   
  4. Icon=Hello   
  5. Type=Application   
  6. Name=Hello  

执行命令:

  1. cp hello.desktop $PEDIR/apps/Applications  

3. 执行程序:

  1. qvfb &   
  2. qpe  

4. 修改图标:

设计32*32的PNG图片放到<Qtopia>/pics/inline目

录下,然后用qembed转换

  1. qembed -images $QPEIDR/pics/inline/*.* >   
  2. $QPEIDR/src/librabies/qtopia 

配置脚本(以上前五步的完整安装,所有需要文件放在/zylinux/x86-qtopia下,执行./build):

  1. #!/bin/bash   
  2. echo remove old dirs   
  3. rm -rf tmake   
  4. rm -rf qt   
  5. rm -rf qt-x11   
  6. rm -rf qtopia   
  7. echo Unpack all packages   
  8. tar xzvf tmake-1.11.tar.gz   
  9. tar xzvf qt-embedded-2.3.7.tar.gz   
  10. tar xzvf qt-x11-2.3.2.tar.gz   
  11. tar xzvf qtopia-free-1.7.0.tar.gz   
  12. echo rename   
  13. mv tmake-1.11 tmake   
  14. mv qtopia-free-1.7.0 qtopia   
  15. mv qt-2.3.7 qt   
  16. echo Start Install Qt-X11   
  17. cd qt-2.3.2   
  18. export QTDIR=$PWD   
  19. echo yes|./configure -static -no-xft -no-opengl -no-sm   
  20. make -C src/moc   
  21. cp src/moc/moc bin   
  22. make -C src   
  23. make -C tools/designer   
  24. make -C tools/qvfb   
  25. cp tools/qvfb/qvfb bin   
  26. strip bin/uic bin/moc bin/designer bin/qvfb   
  27. #cp bin/uic $QTEDIR/bin   
  28. cp bin/?* ../qt/bin   
  29. cd ..   
  30. #cp $QTDIR/bin/?* qt/bin   
  31. mv qt-2.3.2 qt-x11   
  32. echo Start Setting env-var   
  33. export QTDIR=$PWD/qt   
  34. export QTEDIR=$QTDIR   
  35. export QPEDIR=$PWD/qtopia   
  36. export TMAKEDIR=$PWD/tmake   
  37. export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++   
  38. export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH   
  39. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH   
  40. echo Start build Qt/Embedded   
  41. cd qt   
  42. make clean   
  43. cp $QPEDIR/src/qt/qconfig-qpe.h src/tools   
  44. (echo yes; echo yes)|./configure -platform linux-generic-g++ -qconfig qpe -qvfb -depths 16,24,32   
  45. make -C src   
  46. cd ..   
  47. echo Start Build Qtopia   
  48. cd qtopia/src   
  49. ./configure -platform linux-generic-g++   
  50. make   
  51. echo OK  

这样安装完后的安置路径为:

  1. qt-embedded-2.3.7.tar.gz /zylinux/x86-qtopia/qt   
  2. qtopia-free-1.7.0.tar.gz /zylinux/x86-qtopia/qtopia   
  3. qt-x11-2.3.2.tar.gz /zylinux/x86-qtopia/qt-x11   
  4. tmake-1.11.tar.gz /zylinux/x86-qtopia/tmake  

安装完毕,开发前需要导出环境变量:

  1. export QTDIR=$PWD/qt   
  2. export QPEDIR=$PWD/qtopia   
  3. export TMAKEDIR=$PWD/tmake   
  4. export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++   
  5. export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH  

小结:关于Qt开发环境建立与Qtopia 虚拟平台的内容介绍完了。对于Qtopia,它有三个把版本,分别是Qtopia 手机版、Qtopia PDA 版和Qtopia 消费电子产品平台。Qtopia 手机版: 面向嵌入式Linux Qtopia 手机版(Qtopia Phone) 是Qtopia 的一个自定义版本用于内存有限的智能手机和功能手机它的用户界面可自定义内存占用量低手机制造商使用它可以创建令人赞叹的图形用户界面从而令手机卓越超群Qtopia 手机版有两个版本键盘驱动和手写笔驱动。

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-20 09:26:38

Linux qtopia QT

2011-07-04 14:11:43

QT 桌面 Embedded

2011-06-16 17:45:46

Qt Wince

2011-07-04 14:58:56

Qt 桌面 qvfb

2011-06-23 18:16:59

Qt Qtopia

2011-06-13 15:57:26

linux QT QTOPIA

2011-06-23 18:04:42

Qt Embedded

2011-06-13 13:06:48

Gtk Qt

2011-06-29 09:20:41

Qt Embedded Qtopia

2011-07-04 15:48:57

Qt 桌面

2011-09-06 10:36:10

QT平台

2013-02-21 13:49:20

Tizen三星

2011-08-30 13:59:06

QTMysql数据库

2011-06-08 17:32:18

QT VS2008 开发环境

2011-06-13 15:33:24

Qt Qt 4.5

2009-12-09 09:47:05

ibmdwRational

2010-02-26 10:17:15

Linux uClin

2014-12-11 11:03:20

Qt跨平台开发

2011-04-25 19:15:16

2011-08-30 16:02:10

MTK开发环境
点赞
收藏

51CTO技术栈公众号