[百晓生]-linux环境配置之gtk安装与排错

 
[百晓生]-linux环境配置之gtk安装与排错
 
1.yum在线安装gtk
    1)pkg-config -version查看pkg-config的版本(本机测试是0.25
    2)
安装必要组建:(在root权限下)yum install gtk2 gtk2-devel gtk2-devel-docs 
    3)
可能还需要组建(可选,不行再装):yum install gnome-devel gnome-devel-docs
    4)有些linux版本已经自带了gtk包,需要安装yum install gtk2-devel
    5)安装成功后通过pkg-config --modversion gtk+-2.0查看gtk版本(本机测试是2.24.13
    6)在线安装的好处就是不需要自己处理依赖关系,但是对于学习来说,未必是一件好事。

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)在图中可以看见,一个简单的hello world标题的窗口就生成了 
 
 
 

 

你可能感兴趣的:(linux,linux,环境配置,version,gtk,软件包,root权限,在线安装,百晓生,安装与排错)