您的位置:首页 > 其它

Ubuntu 下GTK+开发环境的安装

2010-05-19 20:42 375 查看
忘记原来帖子的地址了,以后补上

1.
apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具
apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置
apt-get install devhelp #这将安装 devhelp GTK文档查看程序
apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档
apt-get install glade libglade2-dev #这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库。
apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕
2.
pkg-config是一个用来管理包的程序,在控制台输入 pkg-config --cflags --libs gtk+-2.0,可以发现输出的文本包括了gcc编译gtk+2.0所需要的所有选项(头文件目录和库文件).
3.

GTK+ (GIMP Tool Kit) 是一套图形函式库 (GUI, Graphical User Intreface),可用来建立 X Window System 以图形为基础 (GUI-based) 的应用程式。一开始 GTK+ 是写来给 GIMP (GNU Image Manipulation Program) 图形处理软体使用的,不过随著 GNU/Linux 与 GNOME Desktop (使用了 GTK+) 的流行, GTK+ 图形库已经慢慢普遍使用在各种工具中。

虽然有了 GTK+,但是要用 GTK+ 来撰写程式并不是一件轻松的事,因为要完成一个 GUI-based 的应用程式,得靠自己用熟悉的文书编辑器,一行一行把 C 程式码敲出来。如果你是个抽象思考力非常好,又很有耐性写程式码的人,也许只要几个小时就能把 GTK+ 摸透;但如果你和我一样也是个懒堕的家伙,我想能撑个一小时来弄清楚 GTK+ 有什用,就可算是一件非常了不起的事了 :-)。还好,Glade 的出现让我在想放弃前有了回心转意的念头。

Glade 是 GTK+ 图形使用者介面产生器 (User Interface Builder for GTK+). 也就是说,Glade 是个 Visual Programming Tool,和 Microsoft Windows 平台的 Visual Tools (VB、Delphi) 类似,只要用滑鼠拉一拉,它就会自动帮你产生 C source code。所以我们这些懒人,就不用再去为画面的设计烦脑,用 Glade 设计好画面,再用编辑器把程式码稍为修修减减就 OK 了。(现在也有各种语言如 C++、Ada95、Python、Perl 等的 GTK+ 介面,如果再搭配其它工具,也可以自动产生 C++, Ada95, Python and Perl 的程式码)
4.以下是一些参考链接

http://www.ibm.com/developerworks/search/searchResults.jsp?searchType=1&searchSite=dWChina&pageLang=zh&langEncoding=UTF8&searchScope=dW&query=gtk&Search.x=0&Search.y=0

http://www.ibm.com/developerworks/cn/opensource/os-gtk1/

http://www.ibm.com/developerworks/cn/linux/l-gtk/part1/
http://www.ibm.com/developerworks/cn/linux/l-gtk/part2/
5.glib测试
具体可以参考这篇文章:
http://www.ibm.com/developerworks/cn/linux/l-glib/
glib官方文档:
http://library.gnome.org/devel/glib/unstable/index.html
glib_test.c 如下:

/* glib_test.c test util*/

#include <glib.h>

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

{

GRand *rand;

GTimer *timer;

gint n;

gint i, j;

gint x = 0;

rand = g_rand_new(); //创建随机数对象

for(n = 0; n < 20; n++)

{

//产生随机数并显示出来

g_print("%d/t",g_rand_int_range(rand, 1, 100));

}

g_print("/n");

g_rand_free(rand); //释放随机对象

//创建定时器

timer = g_timer_new();

g_timer_start(timer); //开始计时

for(i = 0; i < 10000; i++)

for(j = 0; j < 3000; j++)

x++; //累计

g_timer_stop(timer); //计时结束

//输出计时结果

g_print("%d/t all:%.2f seconds was used!/n", x, g_timer_elapsed(timer, NULL));

}

Makefile如下:

CC = gcc

all:

$(CC) `pkg-config --cflags --libs glib-2.0 ` glib_test.c -o glib_test

make后,运行:

87 14 25 47 46 64 1 83 3 62 98 4 27 27 74 72 12 33 80

30000000 all:0.11 seconds was used!

6. gtk测试:

下面测试代码来自:

http://www.huihoo.org/gnu/gtk2-tut/c103.html#SEC-HELLOWORLD

gtk_test.c :

//gtk_test.c

#include <gtk/gtk.h>

/* 这是一个回调函数。data 参数在本示例中被忽略。

* 后面有更多的回调函数示例。*/

void hello( GtkWidget *widget,

gpointer data )

{

g_print ("Hello World/n");

}

gint delete_event( GtkWidget *widget,

GdkEvent *event,

gpointer data )

{

/* 如果你的 "delete_event" 信号处理函数返回 FALSE,GTK 会发出 "destroy" 信号。

* 返回 TRUE,你不希望关闭窗口。

* 当你想弹出“你确定要退出吗?”对话框时它很有用。*/

g_print ("delete event occurred/n");

/* 改 TRUE 为 FALSE 程序会关闭。*/

return TRUE;

}

/* 另一个回调函数 */

void destroy( GtkWidget *widget,

gpointer data )

{

gtk_main_quit ();

}

int main( int argc,

char *argv[] )

{

/* GtkWidget 是构件的存储类型 */

GtkWidget *window;

GtkWidget *button;

/* 这个函数在所有的 GTK 程序都要调用。参数由命令行中解析出来并且送到该程序中*/

gtk_init (&argc, &argv);

/* 创建一个新窗口 */

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

/* 当窗口收到 "delete_event" 信号 (这个信号由窗口管理器发出,通常是“关闭”

* 选项或是标题栏上的关闭按钮发出的),我们让它调用在前面定义的 delete_event() 函数。

* 传给回调函数的 data 参数值是 NULL,它会被回调函数忽略。*/

g_signal_connect (G_OBJECT (window), "delete_event",

G_CALLBACK (delete_event), NULL);

/* 在这里我们连接 "destroy" 事件到一个信号处理函数。

* 对这个窗口调用 gtk_widget_destroy() 函数或在 "delete_event" 回调函数中返回 FALSE 值

* 都会触发这个事件。*/

g_signal_connect (G_OBJECT (window), "destroy",

G_CALLBACK (destroy), NULL);

/* 设置窗口边框的宽度。*/

gtk_container_set_border_width (GTK_CONTAINER (window), 10);

/* 创建一个标签为 "Hello World" 的新按钮。*/

button = gtk_button_new_with_label ("Hello World");

/* 当按钮收到 "clicked" 信号时会调用 hello() 函数,并将NULL传给

* 它作为参数。hello() 函数在前面定义了。*/

g_signal_connect (G_OBJECT (button), "clicked",

G_CALLBACK (hello), NULL);

/* 当点击按钮时,会通过调用 gtk_widget_destroy(window) 来关闭窗口。

* "destroy" 信号会从这里或从窗口管理器发出。*/

g_signal_connect_swapped (G_OBJECT (button), "clicked",

G_CALLBACK (gtk_widget_destroy),

window);

/* 把按钮放入窗口 (一个 gtk 容器) 中。*/

gtk_container_add (GTK_CONTAINER (window), button);

/* 最后一步是显示新创建的按钮和窗口 */

gtk_widget_show (button);

gtk_widget_show (window);

/* 所有的 GTK 程序必须有一个 gtk_main() 函数。程序运行停在这里

* 等待事件 (如键盘事件或鼠标事件) 的发生。*/

gtk_main ();

return 0;

}

编译:

CC = gcc
all:
$(CC) -o gtk_test `pkg-config --cflags --libs gtk+-2.0 ` gtk_test.c
7.gtk+eclipse环境设置

1). 下载eclipse-SDK-3.5-linux-gtk.tar.gz到 ~/Software http://www.eclipse.org/downloads/
2). 解压安装
cd ~/Software
sudo tar -zxvf eclipse-SDK-3.5-linux-gtk.tar.gz -C /usr/local
sudo chown 755 -R /usr/local/eclipse

3. 创建面板快捷启动
右键单击面板->添加到面板 ->定制应用程序启动器。上创建一个新的启动器,数据如下:
名称:Eclipse Platform
命令:eclipse
图标: /usr/local/eclipse/icon.xpm

4). 创建桌面连接
$ sudo gedit /usr/share/applications/eclipse.desktop
加入下面内容
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse SDK
Exec=/usr/local/eclipse/eclipse
Icon=/usr/local/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

5). 设置Eclipse所用的java环境
运行Eclipse,windows=>Preferences=>java=>INstalled JRES 设置所用的java运行环境。

注: 也可以建立一个启动脚本

sudo gedit /usr/local/sbin/eclipse
然后在该文件中添加以下内容:
#!/bin/sh
export JAVA_HOME="/usr/lib/jvm/java-6-sun"
export ECLIPSE_HOME="/usr/local/eclipse"

$ECLIPSE_HOME/eclipse $*

6). 安装CDT

通过Eclipse的Help -> Install New Software进入安装插件界面;
首先,需要添加一个CDT的下载站点,填写CDT的下载地址: http://download.eclipse.org/tools/cdt/releases/galileo (以上下载地址,可以在http://www.eclipse.org/cdt/downloads.php找到)

7).

通过Software Update安装语言包:

http://download.eclipse.org/technology/babel/update-site/europa

or
http://download.eclipse.org/technology/babel/update-site/ganymede
or
http://download.eclipse.org/technology/babel/update-site/galileo

在Eclipse 中:
Project -> Property -> C/C++Build -> Settings -> Tab "Tool Setting" 上

1. GCC C Compiler -> Miscellaneous
在Other flags里面的 -c -fmessage-length=0 后面添加


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

2.GCC C Linker -> Libraries
在 Library search path(-L)里面添加


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

注意在Library search path里面添加后会多出双引号,选编辑然后把双引号去掉就行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: