gtk交叉编译(最全)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、所需的源码包
1. GNU make 工具
2. GNU gettext 软件包(当系统上没有gettext() 函数的时候需要)
3. GNU libiconv 库(当系统上没有iconv() 函数的时候需要)
4. fontconfig库
fontconfig 是提供系统范围内字体设置,定制和允许应用程序访问的函数库。
5. FreeType库
GTK+(基于DirectFB)的字体绘制是通过pango+freetype+fontconfig三者协作来完成的,其中,fontconfig负责字体的管理和配置,freetype负责单个字符的绘制,pango则完成对文字的排版布局。Freetype是一个操作字体的函数库,它不但可以处理点阵字体,也可以处理多种矢量字体,包括truetype字体,为上层应用程序提供了一个统一的调用接口。
6. libpng库
libpng软件包包含libpng 库,这些库被其他程序用于读写png文件。PNG 库是用来创立和操作PNG 格式的图形文件.PNG 格式是设计来替代GIF,它对于更小范围的TIFF(标记图象文件格式)来说, 有了很多的进步和拓展并且减少了关于专利权的麻烦.
7. jpegsrc库
能够使用JPEG算法压缩文件。
8. tiff库
tiff库被很多程序用于读写tiff文件。
9.pkg-config 工具
pkgconfig 包括pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。
对于支持pkg-config 工具的GTK+ 及其依赖库来说,库的头文件的搜索路径的设置变成了对.pc 文件搜索路径的设置。.pc 文件的搜索路径是通过环境变量PKG_CONFIG_PATH 来设置的,pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的.pc 文件为止。
10. GLib 库
GLib是GTK+和GNOME工程的基础底层核心程序库,创建GDK 和GTK 应用程序时该库可提供许多有用的定义和函数,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。
11. ATK 库
ATK 包包含了ATK 库。ATK是可访问性工具箱(Accessibility Toolkit)的简称。ATK 为所有的GTK2程序提供了解决Accessibility 需求的框架。
12. Cairo 库
Cairo,是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显示和打印输出。Cairo提供一个稳定的用户层API,它可以提供现代化的图形处理管理能力,如绘制和填充,映射转换,合成(注意,是合成)与改变alpha半
透明图像,高真文本显示等等。能够在不同的媒体上实现相同的输出。
13. Pango 库
Pango 库提供了底层的文本编排绘制生成函数, 一套生成整段文本布局的高层函数和帮助编辑多国文本的函数。
14. GTK+ 库
其中前五项一般比较新的Linux版本中,系统都会自带。需要注意的一个问题是如果GTK的安装路径为/opt/gtk时,在PKG_CONFIG_PATH中除了要添加/opt/gtk/lib/pkgconfig之外,还有加上/usr/lib/pkgconfig。因为安装在系统的库其.pc 文件都在/usr/lib/pkgconfig中,想要在安装GTK时用到这些系统自带的库时,必须把路径设置清楚。
在收集安装GTK所需的源码包时最重要,也是最容易忽略的一个问题就是各个包之间版本的匹配问题。我在安装GTK就忽略了这个问题,结果走了很多弯路。解决这个问题最简单的办法就是登陆GTK+ 的网站
":ftp:///pub/gtk,在上面下载各种源码包。在这个站点上,每个GTK版本兼容的源码包都放在一个文件夹下。例如我选择安装GTK v2.6,只要在ftp:///pub/gtk/v2.6中下载各个包即可。不过选择V2.6的朋友要严重注意一个问题,支持GTK V2.6的pango包有两个版本-1.8.0、1.8.1,1.8.0是一个失败的版本,如果选择它,在安装GTK时就会死活找不到pango库。我当时就是这个版本的受害者,花了很长时间也无法在安装GTK时连接pango库,后来在网上看到一个老外说这个版本有bug,只能使用1.8.1版本。妈的!这不坑人吗!
根据依赖关系的要求,库的安装要按照这样的先后顺序进行:GLib、Atk、Cairo、Pango、Gtk+。
二、设置
主要包括对LD_LIBRARY_PATH和PKG_CONFIG_PATH的设置,具体如下:
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH 注意,如果想要使用系统中已有的fontconfig、FreeType等库,需要加上系统原有的库:
> export LD_LIBRARY_PATH=/usr/lib
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/usr/lib/pkgconfig
> export PKG_CONFIG_PATH=/usr/X11R6
/lib/pkgconfig:$PKG_CONFIG_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH 容易被人忽略的一点是LD_LIBRARY_PATH和PKG_CONFIG_PATH这两个环境变量只对当前的终端窗口有效。如果到了没有进行上述设置的终端窗口中,pkg-config 将找不到新安装库的.pc 文件、从而可能使后面进行的安装无法