2009-09-01 98 views
23

我知道.OBJ是編譯編譯單元的結果,而.LIB是一個可以從幾個.OBJ創建的靜態庫,但是這種差別似乎只在編譯單元的數量上。還有其他的區別嗎?它是相同或不同的文件格式?.LIB和.OBJ文件有什麼區別? (Visual Studio C++)

當我想知道是否在鏈接到最終可執行文件時,是否合併了兩個(或多個).LIB中定義的相同靜態變量時,我想到了這個問題。對於.OBJs變量被合併。但是在.LIBs中它是一樣的嗎?

回答

35

.LIB文件是與索引連接在一起的.OBJ文件的集合。連接器的處理方式應該沒有區別。

4

好像.lib文件就像.obj文件的集合。有些人也認爲這個過程是將幾個.obj文件切換到.lib文件,作爲存檔。在這種情況下,.lib文件是一個.obj文件,它可以被鏈接器同等對待。

+2

windows中的'.lib'與linux中的'.a'相同。 – 2012-12-14 00:51:35

相關問題