《2022年gtk交叉编译 .pdf》由会员分享,可在线阅读,更多相关《2022年gtk交叉编译 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、所需的源码包1. GNU make 工具2. GNU gettext 软件包(当系统上没有gettext() 函数的时候需要)3. GNU libiconv 库(当系统上没有iconv() 函数的时候需要)4. fontconfig库fontconfig 是提供系统范围内字体设置, 定制和允许应用程序访问的函数库。5. FreeType 库GTK+(基于 DirectFB)的字体绘制是通过pango+freetype+fontconfig三者协作来完成的,其中, fontconfig 负责字体的管理和配置, freetype负责单个字符的绘制,pango则完成对文字的排版布局。Freety
2、pe是一个操作字体的函数库,它不但可以处理点阵字体,也可以处理多种矢量字体,包括truetype字体,为上层应用程序提供了一个统一的调用接口。6. libpng库libpng 软件包包含libpng 库, 这些库被其他程序用于读写png 文件。 PNG 库是用来创立和操作PNG 格式的图形文件 .PNG 格式是设计来替代GIF,它对于更小范围的 TIFF(标记图象文件格式 )来说, 有了很多的进步和拓展并且减少了关于专利权的麻烦 .7. jpegsrc库能够使用 JPEG算法压缩文件。8. tiff 库tiff 库被很多程序用于读写tiff 文件。9.pkg-config 工具pkgconfi
3、g 包括 pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。对于支持 pkg-config 工具的 GTK+ 及其依赖库来说,库的头文件的搜索路径的设置变成了对.pc 文件搜索路径的设置。 .pc 文件的搜索路径是通过环境变量 PKG_CONFIG_PATH 来设置的, pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的.pc 文件为止。10. GLib 库GLib 是 GTK+和 GNOME 工程的基础底层核心程序库, 创建 GDK 和 GTK 应用程序时该库可提供许多有用的定义和函数,是一个综合用途的实用的轻量级的 C 程序库,它提供
4、C 语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的 API。11. ATK 库ATK 包包含了ATK 库。ATK 是可访问性工具箱 (Accessibility Toolkit )的简称。 ATK 为所有的 GTK2 程序提供了解决Accessibility 需求的框架。12. Cairo 库Cairo,是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显示和打印输出。 Cairo 提供一个稳定的用户层API,它可以提供现代化的图形处理管理能力,如绘制和填充,映射转换,合成(注意,是合成)与改变alph
5、a半名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 透明图像,高真文本显示等等。能够在不同的媒体上实现相同的输出。13. Pango 库Pango 库提供了底层的文本编排绘制生成函数, 一套生成整段文本布局的高层函数和帮助编辑多国文本的函数。14. GTK+ 库其中前五项一般比较新的Linux 版本中,系统都会自带。需要注意的一个问题是如果 GTK 的安装路径为 /opt/gtk 时,在 PKG_CONFIG_PATH 中除了要
6、添加/opt/gtk/lib/pkgconfig 之外,还有加上 /usr/lib/pkgconfig。 因为安装在系统的库其 .pc文件都在 /usr/lib/pkgconfig 中,想要在安装 GTK 时用到这些系统自带的库时, 必须把路径设置清楚。在收集安装 GTK 所需的源码包时最重要,也是最容易忽略的一个问题就是各个包之间版本的匹配问题。我在安装GTK 就忽略了这个问题,结果走了很多弯路。解决这个问题最简单的办法就是登陆GTK+ 的网站:ftp:/ftp.gtk.org/pub/gtk ,在上面下载各种源码包。在这个站点上,每个GTK 版本兼容的源码包都放在一个文件夹下。例如我选择安
7、装GTK v2.6,只要在ftp:/ftp.gtk.org/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+。二、设置主要包括
8、对 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
9、 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 文件、从而可能使后面进行的安装无法名师资料总结 - - -精
10、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 进行。 (自己犯的一个简单却造成严重后果的错误,吐血提醒大家哦)三、源码包的安装我安装的 GTK 版本为 v2.6,用到的源码包包括: jpegsrc.v6b.tar.gz 、libpng-1.2.8.tar.bz2、tiff-v3.6.1.tar.gz 、pkgconfig-0.15.0.tar.gz、glib-2.6.6.tar.bz2、atk-1.9.0.tar.bz2 、cairo-1.2.4.ta
11、r.gz、pango-1.8.1.tar.bz2 、gtk+-2.6.9.tar.bz2。把它们都放在 root 的主目录下。将 GTK+ 及其依赖库设置安装到同一个目录/opt/gtk 下、而不是每一个库占用一个不同的目录, 可以给以后的库的设置带来方便。而且,在将来不再需要这个版本的GTK+ 及其依赖库的时候可以通过删除这个目录将它们简单地去除。1安装 pkgconfig tar zxvf pkgconfig-0.15.0.tar.gz cd /root/pkgconfig-0.15.0 ./configure make make install每个过程结束后,都可以用用echo $? 检
12、查是否执行安装成功。如果输出是0,说明配置成功; 0 之外的数字说明配置失败。在Linux 系统上,可以用这个方法检查一个命令或程序在其结束后返回给系统的值是多少。一般 0 代表成功,非 0 表示程序异常退出。2安装 glib tar zjvf glib-2.6.6.tar.bz2 cd /root/ glib-2.6.6./configure -prefix=/opt/gtkmake make install3安装 atk tar zjvf atk-1.9.0.tar.bz2 cd /root/ atk-1.9.0./configure -prefix=/opt/gtkmake make i
13、nstall名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 4.安装 cairo tar zxvf cairo-1.2.4.tar.gz cd /root/ cairo-1.2.4./configure -prefix=/opt/gtk -with-x -enable-win32=nomake make install5.安装 Pango tar zxvf cairo-1.2.4.tar.gz cd /root/ cairo-1
14、.2.4./configure -prefix=/opt/gtk -libdir=/opt/gtk/lib -with-xmake make install6安装 libpng tar zjvf libpng-1.2.8.tar.bz2 cd /root/ libpng-1.2.8 make prefix=/opt/gtk ZLIBINC=/opt/gtk/include ZLIBLIB=/opt/gtk/lib -f scripts/makefile.linuxmake prefix=/opt/gtk install -f scripts/makefile.linux7安装 libtiff(
15、就是 tiff) tar zxvf tiff-v3.6.1.tar.gz cd /root/ tiff-v3.6.1 ./configure -prefix=/opt/gtk -noninteractive -with-DIR_MAN=/opt/gtk/share/man make make install8安装 libjpeg(就是 jpegsrv) tar zxvf jpegsrc.v6b.tar.gz cd /root/jpeg-6b ./configure -enable-static -enable-shared -prefix=/opt/gtk make名师资料总结 - - -精品
16、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - make install注:jpeg 默认不 share library,因此要手工指定 -enable-shared ,一般安装 lib时这一点都是要注意的。10安装 gtk tar zjvf gtk+-2.6.9.tar.bz2 cd /root/ gtk+-2.6.9 ./configure -prefix=/opt/gtk -with-x -without-libjpeg make make inst
17、all四、检验是否正确安装GTK为了检验是否正确安装GTK,利用 GTK 编写一个简单的程序,这个程序创建 200 x200 大小的窗口。源码如下:为了检验是否正确安装GTK,利用 GTK 编写一个简单的程序,这个程序创建 200 x200 大小的窗口。源码如下:#include int main( int argc,char *argv )GtkWidget *window;gtk_init (&argc, &argv);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);gtk_widget_show (window);gtk_main ();ret
18、urn 0;用 gcc 编译上面的程序:gcc base.c o base pkg-config cflags libs gtk+2.0成功编译后,使用命令 ./base运行该程序。注意上面编译命令中使用的单引号类型是很重要的。(译者注: 这里使用了“命令替换”。命令替换 (command substitution)使得可以捕获一个命令的输出而在另一个命令中替换它。这个单引号不是回车键左边的那个,而是ESC 键下面的那个。) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -