RHEL 5.5:GTK+安装指南

本文参考http://hi.baidu.com/ekylin/blog/item/72866960bd199b46ebf8f8ab.html

OS:Red Hat Enterprise Linux 5.5

内核版本:2.6.18-194

GTK+版本:gtk+2.16.6

安装之前   # mkdir -p /opt/gtk    //建立gtk+及依赖的安装路径

   首先确定系统中是否安装pkgconfig 若没有先把这个安装上,这个rpm包系统自带的有

    再安装所需库文件的rpm包libjpep-devel、libtiff-devel、libX11-devel、libXext-devel、libXrender-devel(安装第三第四个包的时候会有依赖关系,可以在自己的系统安装盘或文件内找到,如果没有可以去这里:http://rpm.pbone.net下载,建议下载版本相符或较高的rpm包,本系统的系统盘上的libjpeg-devel是6b版本),最好把gdk-pixbuf-devel、gtk2-devel (这两个的依赖包不少,具体顺序记不清了,请谅解)也装上

     一路rpm -ivh --------.rpm后再设置库文件及PKG_CONFIG_PATH的环境变量

    方法一:# vi (your username)/.bashrc   选择你需要的库即lib文件夹加入其中,在这里输入如下语句

    LD_CONFIG_PATH=$LD_CONFIG_PATH:/opt/gtk/lib:/usr/lib:/usr/local/lib    //如果是64位的话也可以把/usr/lib64加进去,不过为了避免不必要的麻烦不推荐这一项    
    PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:/usr/lib/pkgconfig       //这里注意下,因为装我之前的所说的那些包时,因为依赖关系,gtk+需要的包大多已经安装上了

    export LD_CONFIG_PATH PKG_CONFIG_PATH         //上面那不是分号";"而是冒号":"

    保存退出,然后注销当前用户,这样刚才配置的环境变量才会生效,若不信,你可以用export或echo试试看能返回刚才设置的值不能

     方法二:同样要设置PKG_CONFIG_PATH环境变量,进行如下操作:

    # vi /etc/ld.so.conf 在里面把你需要的库文件也就是lib所在路径都放进去,一行一句,如/usr/lib/*,一定要把 /opt/gtk/lib写进去当然也可以将你想让GTK+编译时搜到的文件放在里面,如: /usr/lib/libtiff*,这里就不赘述了, 保存退出后部要忘了这个命令 ldconfig 这是将刚才设置的库写入ld.so.cache里让系统在启动时加载,下面每编译成功一个就运行一次ldconfig命令。

建议把 /opt/gtk/bin 加入到 (your username)/.bash_profile 中

下面开始吧!

glib 2.0>=2.19.7

----------

shell> tar jxvf glib-2.19.7.tar.bz2
shell> cd glib-2.19.7/
shell> ./configure --prefix=/opt/gtk
shell> make
shell> su -c "make uninstall" root
shell> su -c "make install" root

*** 注:安装路径是 /opt/gtk ***


libpng //这个在系统盘中也是有的,愿意手动编译也无妨,是libpng-devel-1.2.10
--------

shell> tar zxvf libpng-1.14.0.tar.gz
shell> cd libpng-1.14.0/
shell> ./configure --prefix=/opt/gtk
shell> make
shell> su -c "make uninstall" root
shell> su -c "make install" root

还有一种安装方法可以参考:
shell> make -f scripts/makefile.linux
shell> make -f scripts/makefile.linux install


atk   //建议在图形界面下运行,我是这样的
-----

shell> tar zxvf atk-1.26.0.tar.gz
shell> cd atk-atk-1.26.0/
shell> ./configure --prefix=/opt/gtk
shell> make
shell> su -c "make uninstall" root
shell> su -c "make install" root


cairo
-------

shell> tar zxvf cairo-0.13.1.tar.gz
shell> cd cairo-0.13.1/
shell> ./configure --prefix=/opt/gtk/
shell> make
shell> su -c "make uninstall" root
shell> su -c "make install" root


pango
-------

shell> tar jxvf pango-1.20.8.tar.bz2
shell> cd pango-1.20.8/
shell> ./configure --prefix=/opt/gtk/   //pango需要cairo、X11、FreeType、Xext中之一

shell> make
shell> su -c "make uninstall" root
shell> su -c "make install" root

 

*** 注:因为之前安装的那些包里有一个cairo的依赖,即cairo在系统中已经存在,所以此处最好加上 CAIRO_CFLAGS="-I/opt/gtk/include/cairo CAIRO_LIBS="-L/opt/gtk/lib,make install后,你会看到类似这样的话:target:Xext X11 FreeType Cairo 那就说明在GTK+ make 的时候不会出现pangocairo.lo 的错误了***


gtk+
---------------------------------

shell> tar jxvf gtk+-2.16.6.tar.bz2
shell> cd gtk+-2.16.6/
shell> ./configure --prefix=/opt/gtk/
shell> su -c "make uninstall" root
shell> su -c "make install" root

 

 

 

 

       PS:为什么我在文中不推荐如下这种方式呢        export   LD_CONFIG_PATH=$LD_CONFIG_PATH:/opt/gtk/lib:/usr/lib:/usr/local/lib

export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:/usr/lib/pkgconfig

因为 export只对当前终端窗口用户有效,要是你注销或是有事出去需要关机的话,再启动这个值就丢失了,所以我在此推荐将该组变量直接配置到文件里,省得麻烦。

      PKG_CONFIG_PATH是系统或是需编译的软件获取系统软件包版本信息的一个工具,你会发现pkgconfig文件夹下的文件都是 .pc后缀名,你可以用文本编辑器查看或是修改,里面就是一个软件的安装路径,以及他的include lib 都放在哪儿的,都可以看到,然后又去那个路径调用所需的文件,PKG_CONFIG_PATH 就是为软件间调用的一座桥。在未设定PKG_CONFIG_PATH 的时候系统中也是存在的,可以用如下命令检测pkg-config --list-all

      有时编译的时候会出现无法连接或是loader failed,或是pkg-config检测到两个版本信息的现象,例如:"Glib-2.0>=2.19.7 was Reaquired" found ,but also glib-2.0 version 2.12.2 found。这是因为支持pkgconfig的软件的 .pc 文件同时在不同的lib/pkgconfig文件夹下存在而且版本还不一样,当i386和x86_64的软件版本都存在时也无法连接或是load,如:Can't link pango ,所以编译32位的软件的时候不要导入64位的pkgconfig文件夹下的 .pc 文件。当新版本和旧版本同时存在但两个库都需要用的时候,可以用新版本的 .pc 文件去替换老版本的 .pc 需要注意的是:尽量保持文件名的一致性,原来是什么名就是什么名,也可通过 ln -s(创建链接) 的方式,但如果是同一软件的话一般不会出现文件名不一样的现象。

 

    我是一个菜鸟,刚接触Linux,搭建这个环境费了我很多的时间,希望这对你有所帮助,如果有其他问题,欢迎发邮件 [email protected],我们共同探讨!

 

 

     官方参考手册(GTK+ Reference Manual) http://library.gnome.org/devel/gtk/stable/gtk-building.html

猜你喜欢

转载自kuiheli-hotmail-com.iteye.com/blog/802010