Gtk+的裁剪
来源:互联网 发布:java 门户网站 编辑:程序博客网 时间:2024/05/22 07:07
我们使用了GTK+的新版本 2.10.9,编译出来的大小为20M,而且不是debug版本的,体积很是庞大,在嵌入式环境中尤为突出,因此需要进行裁剪。IBM网站上的资料说是可以裁剪到1M,很是吓人,20倍!让我们来试试。
首先第一步, 把其中的调试信息去掉看看。使用如下命令,strip –strip-unneeded -R .note -R .comment “libgtk-x11-2.0.so.0.1000.9″,看到了把,20M变成了3M,缩水六分之一强。
第二步,则是需要裁剪 gtk内部的模块了,一般来说,在linux系统中,软件源代码包使用configure,make,make install方式进行安装。gtk+图形库也是如此。configure时,linux系统会去查找Makefile.in文件,根据此文件内容生成 Makefile,后面的make根据Makefile进行编译。
因此,需要裁剪时,我们需要修改gtk目录下的Makefile.in文件,删除里面的一些模块,就可以达到裁剪目的,修改完成之后,再执行configure,make,make install流程进行编译安装。
根据Gtk+的《GTK+ Reference Manual》,首先把不需要使用的大的窗体裁掉,像File Chooser dialog,color selection dialog,font selection dialog,File button,font button等等都可以去掉,以File Chooser dialog为例:在Makefile.in中查找gtkfilechooser字符串,将会找到多项(包括.c,.h,.lo,.plo),统统予以删 除。
其次根据文档说明,下列对象可以不要,都可以删除,删除方法同上。Deprecated GtkCList - A multi-columned scrolling list widget
GtkCTree - A widget displaying a hierarchical tree
GtkCombo - A text entry field with a dropdown list
GtkItemFactory - A factory for menus
GtkList - Widget for packing a list of selectable items
GtkListItem - An item in a GtkList
GtkOldEditable - Base class for text-editing widgets
GtkOptionMenu - A widget used to choose from a list of valid choices
GtkPixmap - A widget displaying a graphical image or icon
GtkPreview - A widget to display RGB or grayscale data
GtkProgress - Base class for GtkProgressBar
GtkText - A text widget
GtkTipsQuery - Displays help about widgets in the user interface
GtkTree - A tree widget
GtkTreeItem - The widget used for items in a GtkTree
另外根据需求,可以把Cross-process Embedding,Special-purpose features,Recently Used Documents,Printing,Ornaments等模块删除,把该模块声明下的对象予以删除。还有一些小窗口,如果没有使用的必要,也可以直接 删除。
裁剪时,有一点需要注意,gtk的部分对象之间存在依赖关系,gtk的部分对象实现不是很好,父对象层依赖于子对象层,如果一定要删除某个有依赖的对象,则需要修改gtk的相关源代码。
经过试验,裁剪了部分模块,体积从3M变为2M左右。
第三步,使用arm编译器进行编译,嵌入式的编译器编译出来的体积应该小一些(这条断言没有看到实际的证明依据,只是凭直觉) 。这一步没有经过验证。
根据这三步下来,gtk+的体积应该大幅度降下来了,基本达到目的。
原文地址 http://hi.baidu.com/landuochong/blog/item/74f3bd130e0bd6d4f7039e35.html
- Gtk+的裁剪
- Gtk+的裁剪
- Gtk+的裁剪
- 调用系统的裁剪功能裁剪图片
- 自定义裁剪区域的缩略图裁剪功能
- GTK+的线程安全问题
- gtk的rc
- GTK+的笔记
- GTK的入门使用
- GTK+的安装
- vs2005+gtk的配置
- GTK+-2.0的安装
- gtk treeview的使用
- GTK的源码安装
- GTK的FQA
- GTK的安装步骤
- GTK+-2.0 的安装
- pytho gtk的安装
- JAVA使用到的一些环境变量,Tomcat,Junit,Ant
- 定时运行一个Java程序的方法
- Reverse Mapping Checking - Possible Break-in Attempt Error with SSH
- 食海鲜四不宜
- 瓶子里的水
- Gtk+的裁剪
- 自己写的一个简单mt图片幻灯类
- 瑜珈:美丽的秘密武器
- 写程序呀写程序 你们也是这样学写程序的么 (3)
- 《百忍歌》
- Ubuntu7.10 vi/vim搭建超级c/c++编程环境
- 《养生二十八禁忌》
- OA系统权限管理设计方案
- 月经不调偏方