Qt/Embedded 简介

1、 Qt/Embedded体系结构
Qt/Embedded是基于Qt的嵌入式GUI和应用程序开发的工具包,它可运行多种嵌入式设备上,主要运行在嵌入式Linux系统上,并且需要C++编译器的支持,并为嵌入式应用程序提供Qt的标准API。
Qt/Embedded 的API是基于面向对象技术的。在应用程序开发上使用与Qt相同的工具包,只需在目标嵌入式平台上重新编译即可。使用所熟悉的桌面开发工具,来编写和保存一个嵌入式应用程序的源代码树,在移植到多种嵌入式平台时,只需要重新编译代码。
Qt/Embedded提供自身的轻量级窗口系统,比使用Xlib和X Window更加紧凑; Qt/Embedded 的设计原则是不依赖于X server或者Xlib,而是直接访问帧缓存,同其他解决方案如Qt/X11相比这样做最显著的效果是减少了内存消耗。只需要一个 Qt/Embedded动态链接库就足以替代X server、Xlib库和其他嵌入式解决方案的图形工具包。
Qt/Embedded还可以在编译时去掉运行时所不需的特性,以减少内存的占用。Qt/Embedded动态链接库可以通过编译时去掉用不到的特性来减 少在内存中的覆盖。通过设置src/tools/qconfig.h可以在安装时,定制用户所需的原有Qt功能的一个子集。这样就可以在嵌入式系统中减小 Qt/Embedded的尺寸,减少应用程序的内存消耗;而且嵌入式系统中的应用程序集合总是相对固定的也是运用这一功能的重要原因。实现这一定制,只需 在qconfig.h中定义宏来取消相应的特性。例如:QlistView窗口部件若要在编译时去掉,只需在qconfig.h中定义 QT_NO_LISTVIEW宏即可。若一些特性是依赖于其他特性的,依赖关系是在文件src/tools/qfeatures.h中描述的。 Qt/Embedded提供了超过200种可以设置的特性,通过选择链接,可以生成700KB到5000KB(Intel X86)之间大小的动态链接库。大部分用户使用的设置在1500KB到4000KB之间。而且QtE的应用程序也比其他工具开发的应用程序所占用的内存 少。在系统中许多CUP时间和内存空间是被ELF(excutive linked file一种为Linux系统所采用的通用文件格式,支持动态连接)链接过程占用了。若使用静态链接技术就可以极大的减少资源的消耗。若运行时所需的应用 程序和组件在编译前就可以确定下来,则把所有的应用程序编译链接成唯一的可执行文件,并静态链接于一个静态链接库(libqt.a)的方法比使用动态链接 库(libqte.so)和一组链接于这个库的可执行文件更能减少资源消耗。这种方式减少了应用程序开始运行时的代价,提高了内存的利用率,所付出的代价 就是降低了程序的灵活性(若添加新的应用程序,需要编译链接所有程序)和健壮性(如果其中一个应用程序又bug,很有可能会影响到其他的应用程序)。但这 种方法对CPU和内存使用要求比较高的设备是非常有利的。若要编译Qt为静态链接库,把-static选项添加到设置中。若在编译时Qt所使用的应用程序 和组件并不能完全确定,可以把一些Qt组件编译成动态链接库文件或者插件。客户定义外观组件,数据库引擎,字体格式阅读器,图片格式转换,文本编解码及窗 口部件都能够被编译为插件,以减少核心动态链接库的尺寸,提供更多的灵活性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值