2010-07-18 48 views

回答

13

兩者都沒有;通常.o文件是目標文件,而.exe文件是完全鏈接的二進制文件(在Windows上)。

在Linux中
  • 靜態庫.a
  • 在Linux的動態庫.so
  • 在Windows靜態庫.lib
  • 在Windows動態庫.dll
+0

這裏還有.la其通常使用的libtool文件 – bluesmoon 2010-07-18 06:46:26

+0

也Theres來與你在編譯時使用,但不是運行一個.dll的.LIB庫。我不認爲這在技術上是靜態庫 - 如果我記得,它們包含DLL中代碼的位置。 – alternative 2010-07-18 14:22:40

3

都沒有。它也取決於平臺。此外,文件擴展名只是約定,庫可以有任何其他擴展名或根本沒有擴展名。

5

它比依賴語言更依賴操作系統。

  • 在Windows中,它們很可能是.dll文件。
  • 在Linux中,它們可能是.a或.so文件。
  • 在OS X中,它們很可能是.a,.so或.dylib文件。
1

答案是庫既不* .o或* .exe。此外,命名約定取決於您正在編譯的平臺。 A * .so文件是一個共享庫。 * .a是Linux平臺上的靜態庫。

您可以在編譯時指定選項來構建庫。

Here您可以查看更多關於共享庫和編譯的信息,併爲此編譯選項。

1

在Linux中,庫文件是一個或多個.o文件的存檔。 Linux使用'ar'程序(想'tar'而不用磁帶)來創建存檔。將它們捆綁在一起後,您可以使用ranlib程序添加一些索引。

ar rc mylib.a source1.o source2.o source3.o 
ranlib mylib.a 
相關問題