Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4263193
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-05-18 09:01:14

1. ubuntu下 安装 glib http://blog.chinaunix.net/space.php?uid=22666248&do=blog&id=322888

  1. sudo apt-get install libglib2.0-dev
  2. sudo apt-get install pkg-config

  3. 使用glib库:
  4. gcc `pkg-config --cflags --libs glib-2.0` -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -L/usr/lib -lm -lglib-2.0 glibtest.c -o glibtest

  5. 在GLIB中将线程(gthread),插件(gmoudle)和对象系统(gobject)这三个子系统区别对待,编译时要注意加入相应的参数。

  6. 如程序中用到对象系统,编译时就应加入:
  7. `pkg-config --cflags --libs gobject-2.0`


  8. 用到线程,编译时则加入:
  9. `pkg-config --cflags --libs gthread-2.0`


  10. 用到插件,编译时则加入:
  11. `pkg-config --cflags --libs gmoudle-2.0`

  1. #include <glib.h>
  2. #include <stdio.h>

  3. static void test_function(gpointer data, gpointer user_data)
  4. {
  5.         int i;
  6.         i = GPOINTER_TO_INT(data);
  7.         g_print("test %d\n",i);
  8. }

  9. int main()
  10. {
  11.         GThreadPool *pool = NULL;
  12.         GError *error = NULL;
  13.         int i,gthreadcount;
  14.         GMutex *mutex;
  15.         if ( g_thread_supported () )
  16.                 printf("support g_thread\n");
  17.         g_thread_init (NULL);
  18.         mutex = g_mutex_new();
  19.         pool = g_thread_pool_new(test_function,NULL,-1,FALSE,&error);
  20.         if(pool == NULL) {
  21.                 g_print("can not create thread");
  22.         }
  23.         gthreadcount = g_thread_pool_get_num_threads(pool);
  24.         g_print("%d\n",gthreadcount);

  25.         g_mutex_lock(mutex);
  26.         for(i = 1; i < 10 ; i++)
  27.         {
  28.                 g_thread_pool_push(pool, (gpointer *)i , NULL);
  29.         }
  30.         g_mutex_unlock(mutex);
  31. }

  1. ywx@yuweixian:~/yu/111111111111$ pkg-config --cflags --libs gthread-2.0
  2. -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -lgthread-2.0 -lrt -lglib-2.0
  3. ywx@yuweixian:~/yu/111111111111$ gcc -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -lgthread-2.0 -lrt -lglib-2.0 xx.c -o xx
  4. ywx@yuweixian:~/yu/111111111111$

  1. ywx@yuweixian:~/yu/111111111111$ ./xx
  2. 0
  3. test 1
  4. test 2
  5. test 3
  6. test 4
  7. test 5
  8. test 6
  9. test 7
  10. test 8
  11. test 9


参考资料:GLib

         http://blog.163.com/jiangbowen1_qd/blog/static/61395762201061483929145/




































阅读(1529) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~