Fat R笔记……与减肥无关

Fat awful terrible Rubbish-bin

faint! gthread初始化后崩溃的问题

,

这样一幅鸟德性的程序,执行时居然在g_print那就segmentation fault了:
int
main (int argc, char *argv[])
{
  g_thread_init (NULL);
  g_print("alive?\n");
  return 0;
}

我的实际情况更复杂一些,我是在gtk-2.0的程序中使用gthread的,在anjuta里面的Compiler and linker options里面加入了gthread库,结果程序一运行就立马崩溃。然而anjuta创建的gnome程序却可以正常使用gthread,我自己另外写一个简单的程序(就是上面那个),用`pkg-config --cflags --libs gthread-2.0`编译,运行起来也正常。那么看来还是编译选项的问题。于是只好把anjuta链接时使用的参数复制出来自己在命令行下面试。结果发现只要把glib-2.0链接进去了就会出错。然而程序依赖gtk+-2.0,必然需要把glib-2.0链进去。当时没明白过来到底怎么回事,后来在打算尝试把那个小程序的编译参数改成`pkg-config --cflags --libs gtk+-2.0 gthread-2.0`时才留意到那个是gthread-2.0,而我在anjuta里面选择的是gthread(没有gthread-2.0这项),它生成的编译参数用的是/usr/lib/libgthread.so,这个其实是1.2版本的,所以跟glib-2.0不兼容。于是在anjuta的Compiler and linker options的libraries标签页里面手动把gthread改成gthread-2.0,重新autogen、make,这样就可以正常使用gthread了

非常简单地……用esd播放PCM音频数据bluez重新配对蓝牙设备

Write a comment

New comments have been disabled for this post.