一、簡述與配置
GLib是一個跨平台的、用C語言編寫的庫,起初是GTK+的一部分,但到了GTK+第二版,開發者決定把跟圖形界面無關的代碼分開,這些代碼於是就組裝成了GLib。因為GLib具有跨平台特性,所以用它編寫的程序可以無需進行大幅度修改就可以在其他程序上編譯和運行。
glib庫是Linux平台下最常用的C語言函數庫,它具有很好的可移植性和實用性。
glib是Gtk +庫和Gnome的基礎。glib可以在多個平台下使用,比如Linux、Unix、Windows等。glib為許多標准的、常用的C語言結構提供了相應的替代物。
如果在程序中要使用到glib庫中的函數,則應該包含glib.h頭文件(在gtk.h和gnome.h頭文件中已經包含了glib.h了)
1、Freebsd中安裝glib
cd /usr/ports/devel/glib20
portsnap fetch extract
Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found.
Fetching snapshot tag from isc.portsnap.freebsd.org... done.
Fetching snapshot metadata... done.
Updating from Fri Dec 6 11:20:31 CST 2013 to Mon Dec 23 21:23:19 CST 2013.
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 4 metadata files... gunzip: (stdin): unexpected end of file
metadata is corrupt.
root@dp:/usr/ports/devel/glib20 # ls
Makefile distinfo files pkg-descr pkg-plist
root@dp:/usr/ports/devel/glib20 # make install clean
===> License LGPL20 accepted by the user
===> Found saved configuration for glib-2.36.3
===> Fetching all distfiles required by glib-2.36.3 for building
===> Extracting for glib-2.36.3
=> SHA256 Checksum OK for gnome2/glib-2.36.3.tar.xz.
===> Patching for glib-2.36.3
===> glib-2.36.3 depends on package: libtool>=2.4 - found
===> Applying FreeBSD patches for glib-2.36.3
..........................
..........................
2、windows下配置與安裝
3、測試:
Linux/unix下測試,以freebsd為例
首先看一下下面這個程序,在編輯器中輸入下面程序,程序首先創建20個1-100以內的隨機數,並顯示在屏幕,然後計算30000000次累加,並輸出計算用的時間。
#include
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("%ld\tall:%.2f seconds was used!\n",x,g_timer_elapsed(timer,NULL));
}
編譯
dp@dp:~/gliblearn % gcc `pkg-config --cflags --libs glib-2.0 gthread-2.0` a.c -o mytest
最後執行:
dp@dp:~/gliblearn % ./mytest
96 24 52 87 52 16 62 17 78 62 76 6 33 53 87 3 40 69 20 33
30000000 all:0.08 seconds was used!
dp@dp:~/gliblearn %