2010-09-17 19 views
2

今天早上我只是在做一些小工作,製作一些靜態庫。爲什麼靜態庫以'.a'結尾?爲什麼C/C++靜態庫以'.a'結尾?

我的辦公室裏沒有人知道,所以我想我會詢問堆棧 溢出。我們正在用C++,C和Objective-C編寫代碼。

+0

我想如果有人知道背後的歷史將是非常有趣的。 – Kaili 2010-09-17 16:24:30

+0

用POSIX標記 - 在Windows上,常見的擴展名是.lib。 – 2010-09-17 16:29:30

+0

@Billy:是POSIX指定的'.a'擴展名嗎? – jalf 2010-09-17 19:34:01

回答

15

我認爲.a慣例來自於使用「archiver」將對象文件放置到靜態庫中。

8

這只是基於Unix系統的慣例。 Visual Studio(Windows)生成.lib文件。

事實上,我剛剛發現還有其他幾個namings,請參閱維基百科文章Library (computing), section File naming

+1

我很想知道這個約定背後的歷史。 – 2010-09-17 16:23:09

+1

我認爲它可能代表什麼東西肯定是一個研究生,認爲這是一個好主意,給它一個字母的擴展名大聲笑 – Kaili 2010-09-17 16:23:33

+0

是的,我加了維基百科的鏈接,很有趣 – Klaim 2010-09-17 16:24:22

4

這是一個包含由「ar」生成的.o目標文件的存檔格式(想到.zip或.tar)。鏈接器只是將對象文件分別指定爲對象。

+1

如果單獨指定.o文件,則即使未指定任何符號,鏈接器也可能包含它們,但使用.a文件鏈接器通常只會在歸檔中引入需要滿足正在構建的對象的.o文件。 – nategoose 2010-09-17 16:34:50

相關問題