Ubuntu 下安裝 GTK
来源:互联网 发布:淘宝开店 如何面试店铺 编辑:程序博客网 时间:2024/06/07 16:24
在撰寫這篇教學文件時正好在玩Ubuntu,這邊說明一下如何在Ubuntu下設定GTK開發基本環境。
由於GTK基本上主要以C語言來撰寫,您必須有C編譯器,Ubuntu預設安裝好後就有gcc了,不過缺少必要的Header file,您可以在文字模式下,安裝build-essential套件,例如:
sudo apt-get install build-essential
安裝完成後,可以寫個基本的C語言程式:- hello.c
#include <stdio.h>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;
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緊密結合。
转自:http://openhome.cc/Gossip/GTKGossip/GTKUnderUbuntu.html
0 0
- GTK Gossip: Ubuntu 下安裝 GTK
- Ubuntu 下安裝 GTK
- Ubuntu 下安裝 GTK
- UBUNTU:GTK+
- ubuntu gtk安装
- ubuntu安装gtk
- Ubuntu下安装GTK+
- Ubuntu下安装GTK+
- Ubuntu 下安装GTK+
- Ubuntu 下安装GTK
- ubuntu gtk安装
- ubuntu gtk 安装
- ubuntu gtk+2.0
- Ubuntu 下安装GTK
- Ubuntu下安装GTK+
- ubuntu下GTK安装
- GTK,qt ubuntu搭建
- ubuntu 10.04 安装 GTK
- BST && TREAP 实现简单排序
- AutoLayout
- HTML5移动前端框架:Junior
- 使用Struts2+JavaScript+Ajax实现成绩录入功能
- HTML5 开源前端框架 Amaze UI 发布 1.0 正式版
- Ubuntu 下安裝 GTK
- 15个最好的HTML5前端响应式框架(2014)
- (八)喜马拉雅Demo引出的细节(代理模式和图片缩放)
- 自定义view详解
- NodeJS笔记 环境搭建(Ubuntu)
- http://www.qianduan.net/html-special-characters-daquan.html
- OGNL、ValueStack、重构资费列表、Action基本原理
- 7个值得注意不太知名的移动HTML5框架
- 关于程序员成长的一点思考