对“glib_major_version”未定义引用

对“glib_major_version”未定义引用

你能告诉我在 Ubuntu 10.10 上链接时如何解决这个“未定义引用”错误吗?

conftest.c:(.text+0x4): 对“glib_major_version”未定义引用

conftest.c:(.text+0xd): 对“glib_minor_version”未定义引用

conftest.c:(.text+0x16): 对“glib_micro_version”未定义引用

collect2:ld 返回 1 退出状态

我已将“export LD_LIBRARY_PATH=/usr/lib:/lib:$LD_LIBRARY_PATH”添加到我的 .bashrc。

$ ls -la libgl*.*

lrwxrwxrwx 1 root root 23 2010-12-17 18:29 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0

-rw-r--r-- 1 根 根 842208 2010-09-27 16:16 libglib-2.0.so.0.2600.0

/lib $ 密码

/lib

但这并不能解决问题。我该怎么办?

答案1

您正在运行什么命令来编译它?

是否存在其他错误导致此错误?


我有与您相同版本的文件,并且它有这些符号。

$ ls -l libglib*
lrwxrwxrwx 1 root root     23 2010-12-05 06:03 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0
-rw-r--r-- 1 root root 842208 2010-09-28 09:16 libglib-2.0.so.0.2600.0
$ nm -D libglib-2.0.so.0.2600.0 | grep version
00073730 T glib_check_version
000c849c R glib_major_version
000c84a4 R glib_micro_version
000c84a0 R glib_minor_version

glib您正在编译自己的程序吗?也许您只需要通过添加选项来告诉链接器进行链接-lglib-2.0

如果您正在跑步
gcc -o conftest conftest.c,则应该
gcc -o conftest -lglib-2.0 conftest.c这样做。

或者您可以添加-lglib-2.0LDFLAGS


您正在编译别人的程序吗?它可能正在使用pkgconfig。其中可能有一些/usr/local令人困惑的内容。

您是否自行安装了其他程序或库?也许是某些程序自行安装的/usr/local/lib

说什么cat /usr/lib/pkgconfig/glib*?说
什么cat /usr/local/lib/pkgconfig/glib*

您可能需要更改 的值LD_LIBRARY_PATH以包含/usr/local/lib,或者更改PKG_CONFIG_PATH,或添加 一些选项./configure

答案取决于你正在做什么。

相关内容