2012年4月10日 星期二

Ubuntu 下安裝 build-essential 和 libgtk2.0-dev

sudo apt-get install build-essential 
sudo apt-get install libgtk2.0-dev



可以使用pkg-config查看一下GTK的相關編譯環境資訊: 
pkg-config --cflag
pkg-config --libs gtk+-2.0

pkg-config會讀取GTK附帶的.pc檔來取得相關編譯資訊,--cflags會列出include目錄,--libs列出所連結的函式庫及其所在目錄


所連結的函式庫包括了(擷取翻譯自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緊密結合。

沒有留言:

張貼留言