obj檔案[Microsoft推出的程式編譯中間代碼檔案]

obj檔案[Microsoft推出的程式編譯中間代碼檔案]
obj檔案[Microsoft推出的程式編譯中間代碼檔案]
更多義項 ▼ 收起列表 ▲

程式編譯時生成的中間代碼檔案。目標檔案,一般是程式編譯後的二進制檔案,再通過連結器和資源檔案連結就成執行檔了。OBJ只給出了程式的相對地址,而執行檔是絕對地址。

形成

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

關係

很久之前的執行檔結構的原理還是十分簡單的。將程式語言編譯成OBJ檔案,再將一個個的OBJ檔案連線起來,再加上資源檔案,就是一個完整的執行檔,不同語言的開發過程都差不多。典型的例子就是Visual Basic早期系列,在編譯過程中注意看目標目錄,就會發現一個個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檔案格式。

相關詞條

熱門詞條

聯絡我們