Linux下glib如何配置
我的linux发行版已经默认安装了glib, 我是用codeblocks进行配置:
include包含:
/usr/include/glib-2.0
这个头文件夹很全, 没问题.
link包含:
/usr/lib/libgio-2.0.a
/usr/lib/libglib-2.0.a
/usr/lib/libgobject-2.0.a
/usr/lib/libgthread-2.0.a
/usr/lib/libgmodule-2.0.a
个人感觉应该基本上全了. 但是为什么构建项目的时候, 依然出现找不到下面函数到链接库呢?
/usr/lib/libglib-2.0.a(gslice.o):(.note.stapsdt+0x1c)||undefined reference to `glib_slice__alloc_semaphore'|
/usr/lib/libglib-2.0.a(gslice.o):(.note.stapsdt+0x60)||undefined reference to `glib_slice__free_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x1c)||undefined reference to `glib_mem__alloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x68)||undefined reference to `glib_mem__alloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0xb0)||undefined reference to `glib_mem__alloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0xfc)||undefined reference to `glib_mem__alloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x144)||undefined reference to `glib_mem__realloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x194)||undefined reference to `glib_mem__realloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x1e0)||undefined reference to `glib_mem__free_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x218)||undefined reference to `glib_mem__alloc_semaphore'|
/usr/lib/libglib-2.0.a(gmem.o):(.note.stapsdt+0x264)||undefined reference to `glib_mem__realloc_semaphore'|
/usr/lib/libglib-2.0.a(gdataset.o):(.note.stapsdt+0x1c)||undefined reference to `glib_quark__new_semaphore'|
/usr/lib/libglib-2.0.a(gdataset.o):(.note.stapsdt+0x5c)||undefined reference to `glib_quark__new_semaphore'|
/usr/lib/libglib-2.0.a(gdataset.o):(.note.stapsdt+0x9c)||undefined reference to `glib_quark__new_semaphore'|
/usr/lib/libglib-2.0.a(gdataset.o):(.note.stapsdt+0xdc)||undefined reference to `glib_quark__new_semaphore'|
||=== 已完成构建: 15 个错误, 0 个警告 ===|
究竟少了什么内容? 从名字上看去, 应该与内存分配的信号量(不知什么玩意)有关. 不过既然是内存分配的问题, glib应该已经实现了这种最基本的功能才是啊. 不应该依赖其他库.
请各位同仁解释下到底少了什么库.
[解决办法]
-lglib?
[解决办法]
看起来像是glib静态链接的bug(我记得某个版本有报告),如果有动态链接试试动态链接可行否
或者这样
/usr/lib/libgio-2.0.a/usr/lib/libglib-2.0.a/usr/lib/libgobject-2.0.a/usr/lib/libgthread-2.0.a/usr/lib/libgmodule-2.0.a-lrt