您能否告訴我在 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.0
到LDFLAGS
.
你是在編譯別人的程式嗎?它可能正在使用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
。
答案取決於你在做什麼。