Glib C:程序无法识别 GLIB 库
Posted
技术标签:
【中文标题】Glib C:程序无法识别 GLIB 库【英文标题】:Glib C : program does not recognize GLIB library 【发布时间】:2014-04-11 23:07:26 【问题描述】:当我想编译我的 C 程序时,我遇到了问题。它适用于 Ubuntu 11.04,但是当我迁移到 Ubuntu 13 时,我遇到了这个问题。
我用这个 Makefile 编译:
all:
gcc -D_GNU_SOURCE -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ -lglib-2.0 -D_FILE_OFFSET_BITS=64 \
-D_LARGEFILE_SOURCE -g -Wall -Wextra -std=c99 -lm *.c -o concatener
我收到以下错误:
undefined reference to « g_str_equal »
undefined reference to « g_str_equal »
undefined reference to « g_array_remove_index »
undefined reference to « g_array_remove_index »
为什么它不能识别这些功能?我是否链接到 glib 库错误?
【问题讨论】:
【参考方案1】:gcc 命令看起来不错,我看不出有什么明显错误,与-lglib-2.0
链接应该是您想要的1。
我的猜测是,在您的 Ubuntu 11.04 系统上,您安装了 glib 开发包,而在您的 13 系统上未安装它。我认为包名应该是 libglib2.0-dev。
1 如果您想更通用一点,可以将硬编码的编译和链接选项替换为
`pkg-config --cflags glib-2.0`
和
`pkg-config --libs glib-2.0`
【讨论】:
以上是关于Glib C:程序无法识别 GLIB 库的主要内容,如果未能解决你的问题,请参考以下文章
GLib.Notification 无法使用非空 VariantType 激活操作
使用 C++ 的 DBus Glib:无法创建 DBusGProxy,释放它并再次创建它
Qt 上的“GLib-ERROR **:无法创建管道主循环唤醒:打开的文件太多”