Glib链接错误:未定义引用

时间:2014-03-16 12:36:12

标签: c linux gcc linker glib

3 个答案:

答案 0 :(得分:1)

gcc的程序参数顺序很重要(源文件应始终在链接库之前)。

使用

进行编译
 gcc -std=c99 -g -Wall -D_GNU_SOURCE $(pkg-config --cflags glib-2.0) \
       *.c  \
       $(pkg-config --libs glib-2.0)  -o formattage

但您确实想要使用与this one

类似的Makefile

当然,您还需要安装libglib2.0-dev包,正如this answer提醒的那样。

顺便说一句:我(就像你可能是)一个法语母语人士,但在S.O.你应该用英语提问,并收到英文错误信息。在编译Stack Overflow之前,将LANG环境变量设置为C export LANG=C

答案 1 :(得分:0)

你需要"链接"针对实现这些-I选项中包含的接口的库。这意味着在构建命令中添加-lglib2.0之类的内容。如果由于位于非标准位置而未找到该库,则首先需要说明-L/some/path/to/glib位置为libglib2.0

答案 2 :(得分:0)

由于没有找不到-lglib-2.0的错误,我们可以假设找到了它并将其传递给链接器。但是符号仍然缺失。

我不知道这是怎么发生的。您可以检查文件是否包含符号

readelf -Ws /usr/lib/x86_64-linux-gnu/libglib-2.0.so | grep g_hash_table

否则,我是否理解您从源代码安装了glib2?有没有理由你没有使用

安装它
sudo apt-get install libglib2.0-dev