Ubuntu Eclipse 配置 Gtk+2.0 库(2)

二、查看GTK库版本

1、查看1.2.x版本

pkg-config --modversion gtk+

2、查看 2.x 版本

pkg-config --modversion gtk+-2.0

3、查看pkg-config的版本

pkg-config --version

4、查看是否安装了gtk

pkg-config --list-all grep gtk

三、测试程序 

//Helloworld.c
 
#include <gtk/gtk.h>
 
int main(int argc,char *argv[])
{
    GtkWidget    *window;
    GtkWidget    *label;
   
    gtk_init(&argc,&argv);
   
    /* create the main, top level, window */
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   
    /* give it the title */
    gtk_window_set_title(GTK_WINDOW(window),"Hello World");
   
    /* connect the destroy signal of the window to gtk_main_quit
    * when the window is about to be destroyed we get a notification and
    * stop the main GTK+ loop
    */
    g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);
   
    /* create the "Hello, World" label */
    label = gtk_label_new("Hello, World");
   
    /* and insert it into the main window */
    gtk_container_add(GTK_CONTAINER(window),label);
   
    /* make sure that everything, window and label, are visible */
    gtk_widget_show_all(window);
   
    /* start the main loop, and let it rest until the application is closed */
    gtk_main();
   
    return 0;
}

四、编译运行

1、编译

gcc -o Helloworld Helloworld.c `pkg-config --cflags --libs gtk+-2.0`

2、运行

./Helloworld

在eclipse中配置gtk+

网上的教程一般到这里也就完事了,但是这是远远不行的,正像我开头说的,我们不可能一直用记事本开发,所以还是要在eclipse之类的IDE中做开发的。关于IDE的选择我就不多说了,只是个人习惯而已。

在eclipse中配置gtk之前,我当然也去查找了很多资料,最后发现一个比较靠普的:

但是这个是在windows下配置的,虽然差别不大,我在Ubuntu中也按照文中所给的方法测试成功了,但是有个问题,我不仅仅需要一个gtk+库,我还需要libxml2库,可能以后还需要libzip之类的第三方库。所以不能一直在IDE中运行。比较客观的一个原因是:eclipse的console输入很蛋疼,用shell + make 的方式也要比单纯依赖IDE要灵活的多,最后一个原因就是我的eclipse总是时不时的崩溃。。。。

还是为了以隮万一,我做了部分摘抄:

一 4查看gtk+2.0的头文件目标和库文件名称

linuxidc@linuxidc:~/study/gtk/pkg$ pkg-config --cflags gtk+-2.0 # 查看gtk+头文件目标

-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz

linuxidc@linuxidc:~/study/gtk/pkg$ pkg-config --libs gtk+-2.0 # 查看gtk+库文件名称

-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype 

linuxidc@linuxidc:~/study/gtk/pkg$

由于我们要经常使用,所以可以用重定向把这些东西输出到一个文件:

下面是我把格式改了一下之后的后果[其实就是对齐了而已]

linuxidc@linuxidc:~/study/gtk/pkg$ cat includes
    1  -pthread
    2  -I/usr/include/gtk-2.0
    3  -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include
    4  -I/usr/include/atk-1.0
    5  -I/usr/include/cairo
    6  -I/usr/include/gdk-pixbuf-2.0
    7  -I/usr/include/pango-1.0
    8  -I/usr/include/gio-unix-2.0/
    9  -I/usr/include/freetype2
    10  -I/usr/include/glib-2.0
    11  -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
    12  -I/usr/include/pixman-1
    13  -I/usr/include/libpng12
    14  -I/usr/include/harfbuzz
linuxidc@linuxidc:~/study/gtk/pkg$ cat libs
    1  -lgtk-x11-2.0
    2  -lgdk-x11-2.0
    3  -latk-1.0
    4  -lgio-2.0
    5  -lpangoft2-1.0
    6  -lpangocairo-1.0
    7  -lgdk_pixbuf-2.0
    8  -lcairo
    9  -lpango-1.0
    10  -lfontconfig
    11  -lgobject-2.0
    12  -lglib-2.0
    13  -lfreetype 
linuxidc@linuxidc:~/study/gtk/pkg$

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17195.html