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#includeint 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标题的窗口就生成了
本文出自 “” 博客,请务必保留此出处