详解Linux系统中QT(QTopia)平台开发
创始人
2024-08-01 04:21:54
0次

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

一、开发包的获取

本例的qtopia开发包名称为:qtopia-arm.tar.gz;

二、开发环境的搭建

qtopia开发包运行于Linux操作系统上,Linux要求内核版本为2.4.18或以上。安装Linux操作系统,

如果只是在PC机上进行模拟器上的开发和交叉编译,可将Linux安装到虚拟机上。将Linux安装到虚拟机上,建议硬盘空间最少分配6G,因为开发环境的搭建需要很大空间。

 

1、qtopia开发包的安装步骤>

 (1)、将qtopia-arm.tar.gz放到/opt/目录下

建议放在/opt/目录下,如果需要将开发包放到其他的目录,则解压后需要修改

qtopia-phone-2.1.1/src/下的config.pri文件。

(2)、用命令tar解压

在Linux终端中CD到/opt/目录下,输入命令 tar -zxf qtopia_dev.tar.gz (回车),几分钟后解压结束,出现命令提示符,如果报找不到什么目录或找不到什么文件,输入命令“df -m”查看硬盘使用情况,一般原因是硬盘空间不足,解压失败,删除硬盘上不需要的文件或重新安装Linux操作系统,把分配硬盘空间更大。

(3)、解压后生成的目录为qtopia_dev

2、交叉编译工具的安装步骤:

(1)、将cross2compiler.tar.gz放到/opt/目录下

(2)、用命令tar -zxf cross2compiler.tar.gz 解压

(3)、解压后生成的目录为debugdir

交叉编译工具的安装是为了编译出在真机上运行的可执行文件,如果只是在模拟器上开发,可不进行交叉工具的安装。

三、模拟器上开发

1、配置文件和全局变量的设置:

(1)、将.../qtopia_dev/.../x86/Settings目录放到/root/目录下,如果已经有/root/Settings目录,则进行覆盖。

(2)、进入qtopia_dev/.../.../x86/目录。(中间目录省略)

(3)、运行 ./setenv 设置环境变量,或source setenv命令。

2、编译例子工程:

在目录.../qtopia_dev/x86/qtopia-phone-2.1.1/examples/application/下有一个名为

application的示例工程,对该工程进行编译和安装,可在模拟器中看到运行效果。

编译步骤:

(1)、进入qtopia_dev/.../.../x86/qtopia-phone-2.1.1/examples/application目录;

(2)、运行qmake生成Makefile 文件;

(3)、运行make install 进行编译和安装。

3、模拟器上查看运行效果:

(1)、进入.../qtopia_dev/20060106V1102/x86/目录

(2)、运行./rn.dat 启动模拟器

4、各个文件安装路径:

(1)、所有编译后的程序放在

qtopia_dev/.../.../x86/qtopia-phone-2.1.1/image/opt/Qtopia/bin/目录下;

(2)、程序相应的desktop文件放在

qtopia_dev/.../.../x86/qtopia-phone-2.1.1/image/opt/Qtopia/apps/Application/目录下

(3)、所有的程序图标放在qtopia_dev/.../.../x86/pia-phone-2.1.1/image/opt/Qtopia/pics/程序名/目录下

5、示例工程中的各个文件

(1)、application.pro文件

该文件中指定工程中用到的各个文件,文件包括:源代码文件(.c .cpp .h)、资源文件名、目标文件名、

desktop文件及路径、图标文件及路径、帮助文件及路径。

qmake命令在执行过程中访问application.pro文件将生成Makefile文件。

(2)、example.desktop文件

该文件将安装到模拟器和真机上,为了在运行时找到工程的各个文件。

(3)、example.control文件

文件中指定了工程的可执行文件路径、desktop文件路径、帮助文件路径和图标文件路径。

这个文件我现在还没有搞清楚:)

(4)、examplebase.ui文件

该文件中以XML的格式定义了可视窗口上的各个部件。

(5)、其它文件

example.html和Example.png分别是工程的帮助文件和图标文件。

 

6、建立自己的工程

(1)、在示例工程的基础上建立自己的工程:新建一个自己工程的目录,将示例工程中的相关文件复制到该目录,在示例工程的基础上进行修改。需要复制的文件有:main.cpp、application.pro、example.control、example.cpp、example.h、example.desktop、examplebase.ui、Example.png、example.html。

(2)、修改事项:

application.pro文件:

“application.pro”文件以.pro为扩展名,文件名要和它所在的目录名相同;

11行,写上所有工程中用到头文件,文件名之间用空格隔开;

12行,写上所有工程中用到.c或.cpp文件,文件名之间用空格隔开;

13行,可视窗口文件名;

14行,生成可执行文件名(目标文件名);

18行,.desktop文件名;

22行,图标文件名;

23行,图标路径名,以目标文件名为目录名;

26行,说明文件名;

desktop文件

A、7行,可执行文件名;

B、8行,图标文件名;

.ui文件,该文件可用QT开发环境修改,也可用文本编辑器修改,

A、第2行,ExampleBase,“ExampleBase”可修改,但一定要与example.h文件的25行父类名称一致;

main.cpp文件

A、该文件名不修改;

 B、21行,修改包含的头文件名;

 C、24行,修改类名;

(3)、编译自己的工程

A、生成Makefile文件,在工程的目录下,运行qmake命令;

B、编译,在工程的目录下,运行make命令;

C、安装,在工程的目录下,运行make install命令;

四、为真机上运行进行编译

将代码用arm编译器进行编译,目标文件就可在真机上运行。

1、必须进行交叉编译工具的安装;

2、将工程目录复制到.../qtopia_dev/20060106V1102/arm/qtopia-phone-2.1.1/目录下;
 

3、编译;

五、将文件安装到真机上

1、设备间的软件连接:

连接步骤:

  (1)、连接好个连线

(2)、启动PC到Linux系统中

(3)、关闭防火墙(service iptables stop)

(4)、挂载进QT的开发包(mount /dev/hda4 /mnt/win)

(5)、手动加载usbdnet.o(进入/mnt/win目录下,执行install),并在终端确认模块已经加载

(6)、启动(重起)nfs(service nfs restart)

(7)、启动minicom(#minicom)

(8)、到/home/目录下,执行脚本pc_Linux

(9)、在终端启动USB设备(ifconfig usb0 192.168.254.1 up)

(10)、在minicom窗口中执行/home/目录下的Linuxrc_run脚本

(11)、在minicom窗口中执行/home/目录下的脚本pc_Linux

(12)、检查目录/mnt/,是否和目录/opt/p2fs下的内容一致,若一致,则成功

这里提供几个诊断连接成功的方法:

pc启动候,通过lsmod|grep usbdnet看看模块是否存在,如果不存在,请手动通过./install加载

如果以上都正确,连接手机,如果ifconfig -a 能看到设备而ifconfig 看不到,请按照文档设置ip并激活。

2、文件安装目录:

将编译好的程序、desktop文件和图标放在手机上/opt/Qtopia/各自对应的目录下。

(1)、所有编译后的程序放在

qtopia_dev/.../arm/qtopia-phone-2.1.1/image/opt/Qtopia/bin/目录下

(2)、程序相应的desktop文件放在

qtopia_dev/.../arm/qtopia-phone-2.1.1/image/opt/Qtopia/apps/Application/目录下

(3)、所有的程序图标放在
qtopia_dev/.../arm/qtopia-phone-2.1.1/image/opt/Qtopia/pics/程序名/ 目录下

3、重起手机。

六、手机目录:

  1. / (根目录)  
  2.  
  3. |----bin  
  4. |----lib  
  5. |----home  
  6. |----mnt (对应于PC机的/opt/p2fs目录,该目录结构可随意)  
  7. |  
  8. |----opt  
  9. | |----Qtopia  
  10. | |----bin (放编译后的程序)  
  11. | |----etc    
  12. | |----pics (放图标文件)  
  13. | |----apps    
  14. | |--Applications (放desktop文件)  
  15. |    
  16. |----Applications (该目录结构任意,可存放工程自己的文件) 

 小结:Linux系统中QT QTopia 平台开发的聂荣讲解完了,本文只是对QTopia 平台做了一个简单的说明,希望本文对你有帮助。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...