答案 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