gcc link的問題
請問要如何下-l指令的時後,ld會自己去找libxxx.so.123來link.
比如說在寫GTK+的程式的時後,我們會下這個指令
$ gcc test.c -o test -lgtk-x11-2.0
然後用ldd查尋它的shared library相依性時會顯示:
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7c0d000)
換言之test其實是與libgtk-x11-2.0.so.0 link.
我有去/usr/lib搜尋libgtk-x11-2.0.so其實是一個symlink file,
連到libgtk-x11-2.0.so.0.
我自己也照著這個方法寫了個libh.so.0, libh.so symlink libh.so.0.
然後下這個指令:
$ gcc test.c -o test -L. -lh
是有編譯成功,但是用ldd指令查test的時後
$ LD_LIBRARY_PATH=. ldd test
卻顯示:
libh.so => ./libh.so (0xb7f4f000)
而不是我想要的:
libh.so.0 => ./libh.so.0
請問為什麼link GTK的library會與link自幾寫的library有這樣不同的結果?
--
Albert Einstein :
If there is any religion that could cope with modern scientific needs it
would be Buddhism.
《金剛經》離一切諸相,則名諸佛。
http://web.cc.ncu.edu.tw/~93501025/jg.doc
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.200.121
推
03/16 09:56, , 1F
03/16 09:56, 1F
→
03/16 09:57, , 2F
03/16 09:57, 2F
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章