忘记原来帖子的地址了,以后补上
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/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;
}
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
Project -> Property -> C/C++Build -> Settings -> Tab "Tool Setting" 上
1. GCC C Compiler -> Miscellaneous
在Other flags里面的 -c -fmessage-length=0 后面添加
2.GCC C Linker -> Libraries
在 Library search path(-L)里面添加
注意在Library search path里面添加后会多出双引号,选编辑然后把双引号去掉就行了