【发布时间】:2014-10-20 10:00:01
【问题描述】:
阅读libtool docs 我想知道为什么我们需要告诉编译器生成与位置无关的代码。毕竟,生成的目标文件还不知道它将被链接到地址空间的哪个位置,所以一个目标文件应该始终是位置独立的,不是吗?而且,要生成共享对象库,这不只是意味着将构成该库的所有对象文件一起烘焙,并可能将所有已成为“实习生”的相对引用设置为烘焙到一起的库,同时保留所有其他引用(绝对和相对)稍后由链接器加载器填写?为什么这也是编译器的一个问题?
【问题讨论】:
-
可能更多关于 SO 的主题。这真的是 unix 特有的吗?
标签: dynamic-linking linker compiler-construction dynamic-loading