我在Python Lisp编译器和一些C链接器的源代码中看到了这个术语。
我的猜测是,一个修复程序只是一个程序集周围的一个包装,确保对齐是正确的,但我不确定这里有什么。
答案 0 :(得分:9)
“fixup”是一个链接器术语。这里有一个很好的讨论:
http://www.microsoft.com/msj/0797/hood0797.aspx
每当一个目标文件(.o,.obj)引用某个外部符号时,它将输出占位符代码,如“将地址0放到寄存器5”和一个注释“用符号的实际地址填写0”富'”。其他一些目标文件将定义'foo',然后链接器将返回并“修正”0为正确的地址。
顺便说一句,如果没有人定义'foo',那么你会得到那些复古50的样式错误信息,例如“无法找到对_foo的引用”,或者如果你使用的是C ++则更难以理解。
当'foo'的地址不适合链接器想要放置的位置时,很少会出现“修复错误”。通常,这来自需要相对偏移太大的修正。
答案 1 :(得分:1)