纪念一次Ubuntu8.04下的GTK源码安装经历

GTK依赖于特定的库:

GLib

ATK

Cairo

Pango

依赖库的安装顺序:

根据依赖关系的要求,库的安装要按照这样的先后顺序进行:

GLibAtkCairoPangoGtk+.

解压bz2xz包命令及源码编译GTK+库:

tar xvfj gtk+-3.2.0.tar.bz2

tar xvfJ gtk+-3.2.0.tar.xz

./configure --prefix=/opt/gtk

make

make install

CPPFLAGS="-I/opt/gtk/include"

LDFLAGS="-L/opt/gtk/lib"

PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"

export CPPFLAGS LDFLAGS PKG_CONFIG_PATH

LD_LIBRARY_PATH="/opt/gtk/lib"

PATH="/opt/gtk/bin:$PATH"

export LD_LIBRARY_PATH PATH

GTK依赖于特定的库:

GLib 库
ATK 库
Cairo 库
Pango 库

依赖库的安装顺序:

根据依赖关系的要求,库的安装要按照这样的先后顺序进行:
GLib、Atk、Cairo、Pango、Gtk+.

解压bz2xz包命令及源码编译GTK+库:

tar xvfj gtk+-3.2.0.tar.bz2
tar xvfJ gtk+-3.2.0.tar.xz
./configure --prefix=/opt/gtk
make
make install
 
CPPFLAGS="-I/opt/gtk/include"
LDFLAGS="-L/opt/gtk/lib"
PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"
export CPPFLAGS LDFLAGS PKG_CONFIG_PATH
 
LD_LIBRARY_PATH="/opt/gtk/lib"
PATH="/opt/gtk/bin:$PATH"
export LD_LIBRARY_PATH PATH
如果出现网络断开的情况,则环境变量需要重新设置

Linux下解压tar.xz包方法:

先在下面这个站点下载解压工具
http://tukaani.org/xz/xz-4.999.9beta.tar.bz2
$tar -jxvf xz-4.999.9beta.tar.bz2
$./configure --prefix=/opt/gnu/xz
$make
$sudo make install
$ln -s /opt/gnu/xz/bin/xz /bin/xz  (前面那个路径可能有差异,自己进去看看)
$xz -d ***.tar.xz
$tar -xvf  ***.tar

安装GLib

可能会报Working zlib librar and headers not found

下载zlib包
$tar -xvzf zlib-1.2.3.tar.gz
$cd zlib-1.2.3.tar.gz
$./configure 
$make
$sudo make install

可能会报Package requirements (libffi >= 3.0.0) were not met: No package ‘libffi’ found

下载libffi包
$tar -xvzf libffi-3.0.11.tar.gz
$cd libffi-3.0.11
$./configure 
$make
$sudo make install

可能会报Your must have either have gettext support in your C library, or use the GNU gettext library

下载gettext包
$tar -xvzf gettext-0.18.1.1.tar.gz
$cd gettext-0.18.1.1
$./configure 
$make
$sudo make install

安装Atk

安装GDK

可能会报TIFF loader will not be built(TIFF library not found)

下载tiff包
$tar -xvzf tiff-4.0.2.tar.gz
$cd gettext-4.0.2
$./configure 
$make
$sudo make install

可能会报JPEG loader will not be built(JPEG library not found)

下载libjpeg包
$tar -xvzf jpegsrc.tar.gz
$cd jpegsrc
$./configure 
$make
$sudo make install

可能会报PNG loader will not be built(PNG library not found)

下载libpng包
$tar -xvzf libpng-1.2.50.tar.gz
$cd libpng-1.2.50
$./configure 
$make
$sudo make install

安装Cairo

可能会报mandatory image surface backend feature could not be enabled

下载pixman-0.26.2包
$tar -xvzf pixman-0.26.2.tar.gz
$cd pixman-0.26.2
$./configure 
$make
$sudo make install

需要安装xcb-proto, libpthread-stubs, xproto, libXau, libxcb

需要安装libxml2

需要安装freetype库和fontconfig

下载freetype包
$tar -xvzf freetype-2.3.5.tar.gz
$cd freetype-2.3.5
$./configure 
$make
$sudo make install
 
下载fontconfig包
$tar -xvzf fontconfig-2.10.1.tar.gz
$cd fontconfig-2.10.1
$./configure 
$make
$sudo make install

然后安装Cairo

安装libX11(xlib)libXext库,需要安装多个依赖库和工具库。

安装Pango

可能会报Could not enable any of FreeTypeX11Cairoor Win32 backends,则修改PangoConfigure文件:

have_cairo=true
have_cairo_freetype=true

安装GTK+

可能会报XInput2 extension not found

无法找到XInput2文件,

安装Libxi-1.4.0

此处略去……

安装过程真是险象丛生,不过终于成功了。

切记:安装过程中一定要注意安装包的版本是否匹配,否则会报错。

gtk编程实例

gcc `pkg-config gtk+-3.0 --cflags --libs` -o helloworld helloworld.c

注意是反单引号

export DISPLAY=127.0.0.1:10.0

./helloworld

弹出窗口

问题及解决方案:

Ubuntu本来是自动启动图形界面的,可是却启动不了显示:

Loading, pease wait...

Kinit: name_to_dev_t(/dev/disk/by-uuid/104ad992-ca26-4337-90a1-17f14a0ea667)= sda8(8,8)

kinit: No resume image, doing normal boot……

解决方法

  一般是用 swap分区保存系统休眠恢复的镜像,所以 /etc/initramfs-tools/conf.d/resume记录的是 RESUME=UUID=104ad992-ca26-4337-90a1-17f14a0ea667,也就是 swapUUID。如果上次是休眠的话,会自动加载休眠时保存的状态。如果上次是关机断电的话,启动的时候会自动跳过。

休眠功能本来就没什么用,我在Win下也都是从来不用这个功能的,直接屏蔽掉就OK啦!

sudo vi /etc/initramfs-tools/conf.d/resume

#RESUME=UUID=104ad992-ca26-4337-90a1-17f14a0ea667

update-initramfs -u

如果ubuntu出现欢迎程序出错的情况,

可以使用下面的解决方法:

sudo gedit /xxxx/…/etc/gdm/gdm.conf-custom
打开找到 [daemon],在下面一行加入
Greeter=/usr/lib/gdm/gdmlogin

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值