Qt开发环境建立与Qtopia 虚拟平台
创始人
2024-08-01 04:11:44
0

本文介绍的是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图片放到/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 手机版有两个版本键盘驱动和手写笔驱动。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...