Ubuntu 下GTK+开发环境的安装

忘记原来帖子的地址了,以后补上

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 (VBDelphi) 类似,只要用滑鼠拉一拉,它就会自动帮你产生 C source code。所以我们这些懒人,就不用再去为画面的设计烦脑,用 Glade 设计好画面,再用编辑器把程式码稍为修修减减就 OK 了。(现在也有各种语言如 C++Ada95PythonPerl 等的 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 如下:

  1. /* glib_test.c test util*/
  2. #include <glib.h>
  3. int main(int argc, char* argv[])
  4. {
  5. GRand *rand;
  6. GTimer *timer;
  7. gint n;
  8. gint i, j;
  9. gint x = 0;
  10. rand = g_rand_new();  //创建随机数对象
  11. for(n = 0; n < 20; n++)
  12. {
  13. //产生随机数并显示出来
  14. g_print("%d/t",g_rand_int_range(rand, 1, 100));
  15. }
  16. g_print("/n");
  17. g_rand_free(rand); //释放随机对象
  18. //创建定时器
  19. timer = g_timer_new();
  20. g_timer_start(timer); //开始计时
  21. for(i = 0; i < 10000; i++)
  22. for(j = 0; j < 3000; j++)
  23. x++; //累计
  24. g_timer_stop(timer); //计时结束
  25. //输出计时结果
  26. g_print("%d/t   all:%.2f seconds was used!/n", x, g_timer_elapsed(timer, NULL));
  27. }

Makefile如下:

 

  1. CC = gcc
  2. all:
  3. $(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里面添加后会多出双引号,选编辑然后把双引号去掉就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值