我正在阅读有关Relocation - done by the linker - @Wiki的信息。关于链接的部分,我有两个问题:
(第1行):由于编译器在最终输出中没有有关对象布局的信息,因此它无法利用较短或效率更高的指令来对另一个对象的地址。
问:现在我们有了Visual Studio或任何高级编程环境(IDE),那么我可以假定在这样的环境中,编译器将查看所有目标文件以获取最终输出,因此优化可以早点做吧? (如果不是这种情况,那么我目前的想法是,编译器以逐段方式编译文件,不确定是否正确。)
问:谁读取/分配了临时地址,编译器或链接器?我不明白这部分。(第8行):仅在读取并分配了临时地址之后,才能执行此步骤;链接器放松通行证随后会重新分配地址,这可能反过来又允许发生更多放松。