【Gtk】feorda下gtk安装详解
feorda下gtk安装详解
1.yum在线安装gtk
1)pkg-config -version查看pkg-config的版本(本机测试是0.25)2)安装必要组建:(在root权限下)
yum install gtk2 gtk2-devel gtk2-devel-docs3)可能还需要组建(可选,不行再装):
yum install gnome-devel gnome-devel-docs4)有些linux版本已经自带了gtk包,需要安装
yum install gtk2-devel5)安装成功后通过以下查看gtk版本(本机测试是2.24.13)
pkg-config --modversion gtk+-2.06)在线安装的好处就是不需要自己处理依赖关系,但是对于学习来说,未必是一件好事。
2.源码安装gtk
1)源码安装主要分为解压缩/配置/构建/安装等步骤
2)主要依赖包有glib/atk/cairo/pango/gtk+
3)根据软件包之间的相互依赖关系,需要按照glib/atk/cairo/pango/gtk+的顺序安装
4)从上面的在线安装gtk可以看到gtk的依赖关系
解决依赖关系 --> 执行事务检查 ---> 软件包 gtk2-devel.i686.0.2.24.13-1.fc17 将被 安装 --> 处理依赖关系 pango-devel >= 1.20.0-1,它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 cairo-devel >= 1.6.0-1,它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 atk-devel >= 1.29.4-2,它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 pkgconfig(pangoft2),它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 pkgconfig(pangocairo),它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 pkgconfig(pango),它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 pkgconfig(gdk-pixbuf-2.0),它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 pkgconfig(cairo),它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 pkgconfig(atk),它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 gdk-pixbuf2-devel,它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要 --> 处理依赖关系 automake,它被软件包 gtk2-devel-2.24.13-1.fc17.i686 需要
3.gtk测试
1)首先编写了一个简单的gtk程序作为测试
2)源代码
//gtk_test.c #include <gtk/gtk.h> int main( int argc, char *argv[] ) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window),"delete_event", G_CALLBACK(gtk_main_quit),NULL); gtk_window_set_title(GTK_WINDOW(window),"Hello World!"); gtk_widget_show(window); gtk_main(); return 0; }
3)编译排错
编译命令:
gcc gtk_test.c -o gtk_test.out 'pkg-config --cflags --libs gtk+-2.0'
gcc: 错误:
pkg-config --cflags --libs gtk+-2.0:没有那个文件或目录
4)解决方案
去官网上发现命令如下:
gcc base.c -o base `pkg-config --cflags --libs gtk+-2.0`发现不同的是,我用单引号' '包含命令,而官网是用倒引号 ` `包含命令,问题就在这,把''换成``后,编译成功。
5)执行效果
6)生成gtk应用
在图中可以看见,一个简单的hello world标题的窗口就生成了
本文出自 “成鹏致远” 博客,请务必保留此出处http://infohacker.blog.51cto.com/6751239/1155127