作者zxvc (zxvc)
看板LinuxDev
标题gcc link的问题
时间Fri Mar 16 09:14:11 2007
请问要如何下-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
1F:推 andytzeng:gcc 编译可以指定 version, name 03/16 09:56