看板 LinuxDev 關於我們 聯絡資訊
請問要如何下-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
andytzeng:gcc 編譯可以指定 version, name 03/16 09:56
andytzeng:http://blog.twpug.org/category/30/88 參考一下 03/16 09:57