2009-07-06 25 views
3

我在Python Lisp編譯器和一些C鏈接器的源代碼中見過這個詞。修復的定義?

我的猜測是修復只是一個Assembly程序的一些包裝,確保對齊是正確的,但我不確定這裏有什麼。

回答

8

「fixup」是一個鏈接詞。這裏有它的一個很好的討論:

http://www.microsoft.com/msj/0797/hood0797.aspx

每當一個目標文件(.o,.OBJ)是指一些外部符號將輸出佔位符碼,如「把地址0註冊5」和請注意,表示「用符號'foo'的實際地址填充0」。其他一些目標文件將定義'foo',鏈接程序將返回並將「0」修正爲正確的地址。順便說一句,如果沒有人定義'foo',你會得到復古50年代風格的錯誤信息,如'找不到_foo的引用',或者如果你使用C++,那麼它就會變得不那麼容易理解。

當'foo'的地址不適合鏈接器要放的地方時,很少會出現「修正錯誤」。通常這來自需要相對偏移量太大的修復。

+0

很好的答案和鏈接,謝謝。 – skypher 2009-07-07 08:52:58

1

鏈接器和裝載機是一個有趣的着墨資源,它解釋了很多專業術語,在這裏和那裏包括非x86的CPU負擔過:

http://www.iecc.com/linker/

從comp.compilers主持人。

相關問題