2015-06-07 23:02:03
来 源
中存储网
Ubuntu
在选写这篇教学文件时正好在学Ubuntu,这边说明一下如何在Ubuntu下设定GTK开发基本环境。 由于GTK基本上主要以C语言来撰写,您必须有C编译器,Ubuntu预设安装好后就有gcc了,不过缺少必要的Header file,您可以在文字模式下,安装build-essential套件,例如

在选写这篇教学文件时正好在学Ubuntu,这边说明一下如何在Ubuntu下设定GTK开发基本环境。

由于GTK基本上主要以C语言来撰写,您必须有C编译器,Ubuntu预设安装好后就有gcc了,不过缺少必要的Header file,您可以在文字模式下,安装build-essential套件,例如:

sudo apt-get install build-essential

安装完成后,可以写个基本的C语言程式:

hello.c

#include

int main(void) {

printf("Hello! World!n");

printf("哈啰!C语言!n");

return 0;

}

编译并执行看看:

$ gcc -o hello hello.c

$./hello

Hello! World!

哈啰!C语言!

再来安装GTK开发套件libgtk2.0-dev:

sudo apt-get install libgtk2.0-dev

安装完成后,可以使用pkg-config查看一下GTK的相关编译环境资讯:

pkg-config --cflags --libs gtk+-2.0

pkg-config会读取GTK附带的.pc档来取得相关编译资讯,--cflags会列出include目录,--libs列出所连结的函式库及其所在目录,以我的电脑为例:

目录,以我的电脑为例:

$ pkg-config --cflags --libs gtk+-2.0

-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1  -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

可以分开执行比较清楚,例如:可以分开执行比较清楚,例如:

$ pkg-config --cflags gtk+-2.0

-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1

$ pkg-config --libs gtk+-2.0

-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

安装GTK环境只要安装一个libgtk2.0-dev就可以了,而安装gnome开发环境的话,需要装gnome-core-devel,它包含GTK开发包。这里大家只介绍安装GTK2.0的方法。

接下来大家给个小程序试试:

#include

void hello(GtkWidget *widget,gpointer data)

{

g_print("Hello Ubuntu!n");

}

gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)

{

g_print ("delete event occurredn");

return(TRUE);

}

void destroy(GtkWidget *widget,gpointer data)

{

gtk_main_quit();

}

int main( int argc, char *argv[] )

{

GtkWidget *window;

GtkWidget *button;

gtk_init (&argc, &argv);

window=gtk_window_new (GTK_WINDOW_TOPLEVEL);

gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);

gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);

gtk_container_set_border_width (GTK_CONTAINER (window), 10);

button = gtk_button_new_with_label ("Hello Ubuntu!");

gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);

gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));

gtk_container_add (GTK_CONTAINER (window), button);

gtk_widget_show (button);

gtk_widget_show (window);

gtk_main();

return(0);

}

然后用接下来命令编译运行

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

$ ./gtktest

最后得到hello Ubuntu的小窗口。证明安装成功。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。