複製鏈接
請複製以下鏈接發送給好友

obj文件

(Microsoft推出的程序編譯中間代碼文件)

鎖定
程序編譯時生成的中間代碼文件。目標文件,一般是程序編譯後的二進制文件,再通過鏈接器和資源文件鏈接就成可執行文件了。OBJ只給出了程序的相對地址,而可執行文件是絕對地址。
別    名
COFF格式
全    稱
Common Object File Format

目錄

obj文件形成

當微軟開始設計 Windows NT 時,很自然的,為了最小化項目啓動時間,他們會使用以前寫好的並且已經測試過的工具。用這些工具生成的並且工作的可執行和 OBJ 文件格式叫做 COFF (Common Object File Format 的首字母縮寫)。COFF 的相對年齡可以用八進制的域來指定。COFF 本身是一個好的起點,但是需要擴展到一個現代操作系統如 Windows 95Windows NT 的需要。這個更新的結果就是(PE文件)可移植可執行文件格式。它被稱為"可移植的"是因為在所有平台(如x86,Alpha,MIPS等等)上實現的WindowsNT 都使用相同的可執行文件格式。當然,也有許多不同的東西如二進制代碼的CPU指令。重要的是操作系統的裝入器和程序設計工具不需要為任何一種CPU完全重寫就能達到目的。

obj文件關係

很久之前的可執行文件結構的原理還是十分簡單的。將編程語言編譯成OBJ文件,再將一個個的OBJ文件連接起來,再加上資源文件,就是一個完整的可執行文件,不同語言的開發過程都差不多。典型的例子就是Visual Basic早期系列,在編譯過程中注意看目標目錄,就會發現一個個OBJ文件出現然後消失。

obj文件淘汰

隨着技術的飛速發展,再加上.NET等先進技術的出現,至今仍支持dOS的OBJ文件也面臨淘汰的風險。
Microsoft 拋棄現存的32位工具和可執行文件格式的事實證實了他們想讓 WindowsNT 升級並且運行的更快的決心。為16位Windows編寫的虛擬設備驅動程序用一種不同的32位文件佈局--LE文件格式--WindowsNT出現很早以前就存在了。比這更重要的是對 OBJ 文件的替換,在 WindowsNT 的 C編譯器以前,所有的微軟編譯器都用 Intel 的 OMF ( Object Module Format ) 規範。就像前面提到的,Microsoft 的 Win32編譯器生成 COFF 格式的 OBJ 文件。一些微軟的競爭者,如 Borland 和 Symentec ,選擇放棄了 COFF 格式並堅持 Intel 的 OMF文件格式。