Glib C:程序无法识别GLIB库

时间:2014-03-08 18:17:49

标签: c glib

当我想编译它时,我的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 个答案:

答案 0 :(得分:0)

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`