【发布时间】:2014-03-14 19:11:59
【问题描述】:
我想知道为什么
g++ test1.o test2.o -o test.x -lgtk-x11-2.0
工作,而
ld 'r test1.o test2.o -o test.o -lgtk-x11-2.0
给予:
ld: cannot find -lgtk-x11-2.0
除非我明确包含添加-L/usr/lib/i386-linux-gnu的路径
我尝试了将路径添加到 $LD_LIBRARY_PATH 或 ld.so.conf 的所有方法,但没有任何效果,我无法解释这两个调用之间的区别。
在 ld 的手册上有说明:
搜索的默认路径集(没有用 `-L' 指定)取决于 ld 使用的仿真模式,在某些情况下还取决于它的配置方式
但尝试不同的仿真(通过使用 -m*emulation*)意味着段错误(可能是因为默认的仿真 elf_i386 是正确的)。
你能帮我解释一下这个话题吗?
【问题讨论】:
标签: c++ compiler-construction g++ ld