C指针原理(40)-GLIB

来源:互联网 发布:网络销售彩票工作经历 编辑:程序博客网 时间:2024/06/05 09:23

一、简述与配置

GLib是一个跨平台的、用C语言编写的,起初是GTK+的一部分,但到了GTK+第二版,开发者决定把跟图形界面无关的代码分开,这些代码于是就组装成了GLib。因为GLib具有跨平台特性,所以用它编写的程序可以无需进行大幅度修改就可以在其他程序上编译和运行。

 

glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。

glibGtk +库和Gnome的基础。glib可以在多个平台下使用,比如LinuxUnixWindows等。glib为许多标准的、常用的C语言结构提供了相应的替代物。

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

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


如果在程序中要使用到glib库中的函数,则应该包含glib.h头文件(在gtk.hgnome.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为例

首先看一下下面这个程序,在编辑器中输入下面程序,程序首先创建201-100以内的随机数,并显示在屏幕,然后计算30000000次累加,并输出计算用的时间。

#include <glib.h>

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 % 

0 0
原创粉丝点击