對“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根根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

答案取決於你在做什麼。

相關內容