GTK Gossip: Ubuntu 下安裝 GTK
2010-12-08 13:00
309 查看
在撰寫這篇教學文件時正好在玩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 所連結的函式庫包括了(擷取翻譯自Compiling Hello World): * GTK(-lgtk):基於 GDK 的 widget 函式庫。 * GDK(-lgdk):Xlib 包裏(Wrapper)。. * gdk-pixbuf(-lgdk_pixbuf):影像處理函式庫。 * Pango(-lpango):國際化文字。 * gobject(-lgobject):GTK 用以為基礎的型態系統。 * gmodule(-lgmodule):用來載入執行時期的擴充。 * GLib(-lglib):包括各種函式,GTK 基於 GLib,所以您會需要這個函式庫。 * Xlib(-lX11):被 GDK 所使用。 * Xext(-lXext):包括共享記憶體 pixmaps(shared memory pixmaps)與其它 X 擴充。 * math(-lm):因各種目的而被 GTK 所使用的數學函式庫。 GTK基於GDK(Gnome Drawing Kit),GDK顧名思義,就是一個與繪圖相關的開發工具箱,GDK將Xlib(X函式庫)加以包裝簡化,像是點、線、視窗、色彩等的設定,以及鍵盤、滑鼠等事件的支援。 GLib基本上是將C的型態、陣列、函式庫等重新包裝,例如在/usr/include/glib-2.0/glib/gtypes.h中,定義了一些基本資料型態,使其更容易達到可攜性: typedef char gchar; typedef short gshort; typedef long glong; typedef int gint; typedef gint gboolean; typedef unsigned char guchar; typedef unsigned short gushort; typedef unsigned long gulong; typedef unsigned int guint; typedef float gfloat; typedef double gdouble; 在撰寫GTK程式時,若見到以g_開頭的型態或函式,或是以G_開頭的巨集,都是由GLib提供。 雖然說GTK基於GDK及GLib,但在撰寫GTK程式時,也常見到GDK及GLib相關函式或結構,所以更確實的說法是,GTK本身專注在視窗元件之安排,並與GDK及GLib緊密結合。
相关文章推荐
- Ubuntu 下安裝 GTK
- Ubuntu 下安裝 GTK
- Ubuntu下GTK的安装、编译和测试
- ubuntu+eclipse 配置 GTK
- ubuntu 开发gtk+3.0程序的环境安装。
- ubuntu14下安裝及搜狗拼音输入法打不出汉字的解决方法
- ubuntu安装aircrack-ng/reaver/minidwep-gtk用来跑pin
- GTK Gossip: GtkHBox 與 GtkVBox
- GTK Gossip: GTK 參考文件
- GTK Gossip: GtkTreeView 與 GtkTreeStrore
- GTK Gossip: GtkLabel
- GTK Gossip: GArray、GPtrArray、GByteArray
- ubuntu下GTK开发环境搭建
- Ubuntu 14.04 安裝HP打印機
- Ubuntu系统下GTK安装
- Ubuntu 16安裝Scrapy出错及解决方案
- Ubuntu-10.04中gvim启动警告:Gtk-WARNING **: Invalid input string
- ubuntu 9.10 安装最新的gtk libgtk2.0-dev
- Linux for Ubuntu 安裝MySQL
- ubuntu4.04如何安裝ia32問題