又要干新的活了,Linux下的GTK开发.没办法,从零开始吧.
首先是Linux环境的熟悉,我用的是Ubuntu10.04,跑在VMWare6.7里.
从虚拟机里安装Ubuntu需要注意不要选择easy install,应使用高级模式,选择"我以后再安装操作系统",如下图所示:
然后在Devices中选择CD/DVD驱动器,载入Ubuntu ISO文件,启动虚拟机即可.
安装好Ubuntu之后再来熟悉一下Linux下的一些常用命令.
作为一个Windows开发人员,基本的计算机使用经验还是具备的,以下命令不详细介绍.若需要获取命令参数,可以使用--help参数进行查询.
ls / list 列出文件和文件夹
tab键 补全文件名
chgrp 更改组
chown 更改所有者
linux文件目录树状结构如下图:
所有目录的根目录都是"/"
文件与目录的说明参考鸟哥的Linux私房菜
目录切换:
cd /usr 切换到绝对目录
cd usr 切换到当前目录下的usr文件夹下
cd ../usr 切换到同级的usr目录下
特殊目录的表示:
..表示上级目录 .表示此级目录 ~表示自己的home目录 ~user 表示user的home目录
pwd 显示当前目录
mkdir 建立一个新目录
rmdir 删除一个空目录
增加PATH包含路径:PATH=”$PATH”:/dir
如增加gtk目录到环境变量中:
PATH="$PATH":/usr/include/gtk-2.0/
PATH="$PATH":/usr/include/gtk-2.0/gtk
cp 复制档案
rm 删除档案和目录 使用-rf参数以删除目录和目录下的所有内容
mv 移动档案和目录
其他的一些高级命令可以参考cat, tac, more, less, head, tail, nl可以参考鸟哥的介绍.
文件压缩:
tar –zcvf filename.tar.gz ./* 当前目录下所有文件打包成一个gz
tar –cvf filename.tar ./* 当前目录所有文件打包 不压缩
tar –xvf file.tar 解包
tar –zxvf file.tar.gz 解包
以上内容主要参考鸟哥的Linux私房菜
习惯了windows中的系统按钮在右侧,ubuntu中也改一下.
首先打开一个终端,在其中输入gconf-editor,打开配置编辑器(谨记,其他配置也可以到此处寻找),在apps——metacity——general中找到 button_layout键值,双击,将其中的内容改为menu:minimize,maximize,close,确定后三个按钮就老老实实的回到右边了,这时候的三个键的顺序从左到右依次是最小化、最大化、关闭。(转载自奶牛博客)
输入法可以选择用ubuntu软件中心中的Fcitx,提供比较接近windows的操作体验.
Ubuntu快捷键
Ctrl+Alt+T 新建终端
ALT+ F1:启动程序菜单,这可能我平时用得最多的
ALT + Home:跳转至家目录
ALT + Enter:显示文件/文件夹属性
ALT + F2:启动“运行应用程序”对话框
ALT + F4:关闭窗口
ALT + Left/Right:在Nautilus导航文件夹时执行回退/前进操作
ALT + Up/Down:在Nautilus导航文件夹时执行向上/向下操作
ALT + Tab : 浏览窗口
Shift + Del:不通过回收站,直接永久删除文件
F2:重命名文件/文件夹
F3:启动Nautilus的分割浏览
F8:显示/隐藏Nautilus菜单栏
F9:切换Nautilus侧栏
Super + Tab:“Shift切换”,需要在CCSM中启动
Super + M:反转所有颜色
Super + A或W:分组排列窗口(需要Compiz)
CTRL + L:浏览/编辑完整位置路径
CTRL + A:全选
CTRL + N:新窗口
CTRL + Shift + N:新文件夹
CTRL + H:显示隐藏文件/不显示隐藏文件
CTRL + ALT + L:锁定屏幕
---------------------------------------------------------------------------
了解了这些基本的东西之后,开始部署GTK开发环境.
Ubuntu中已经自带了GCC编译器,但是还需要一些必须的头文件,所以要安装build-essential这个软件包.
sudo apt-get install build-essential 安装该软件包
安装完成后写一个C语言程序testc.c测试一下。
int main()
{printf("Hello Ubuntu!\n");return 0;
}
Hello Ubuntu!
安装GTK环境
个人比较喜欢的编辑器是Geany.可以在Ubuntu软件中心中找到.
sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置
sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档
sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面构造程序。
写一个示例程序测试:
#include<gtk/gtk.h>void hello(GtkWidget *widget,gpointer data)
{g_print("Hello Ubuntu!\n");
}gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data){g_print ("delete event occurred\n");
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 `pkg-config --cflags --libs gtk+-2.0` gtktest.c -o gtktest
$ ./gtktest
以上参考Ubuntu wiki
Help文件可以到应用程序-->编程--DevHelp中看到.
至此,GTK开发环境配置完成,可以进行开发了.
另:一篇很好的参考文章,Makefile详解.