程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C指針原理(40)-GLIB

C指針原理(40)-GLIB

編輯:關於C語言

一、簡述與配置

GLib是一個跨平台的、用C語言編寫的庫,起初是GTK+的一部分,但到了GTK+第二版,開發者決定把跟圖形界面無關的代碼分開,這些代碼於是就組裝成了GLib。因為GLib具有跨平台特性,所以用它編寫的程序可以無需進行大幅度修改就可以在其他程序上編譯和運行。

glib庫是Linux平台下最常用的C語言函數庫,它具有很好的可移植性和實用性。

glib是Gtk +庫和Gnome的基礎。glib可以在多個平台下使用,比如Linux、Unix、Windows等。glib為許多標准的、常用的C語言結構提供了相應的替代物。

麥好的AI樂園博客所有內容是原創,如果轉載請注明來源

http://blog.csdn.net/myhaspl/


如果在程序中要使用到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 %

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved