2015-11-06 49 views
1

我正在使用:Windows 7; MinGW(GCC)4.8.1版; C++使用minGW鏈接庫

我有幾個自己的構建庫鏈接到一個可執行文件。 一個簡單的例子與一個庫鏈接:libFolder \ libforms.a

A)g++ -o main\theApp.exe main\main.o -LlibFolder\ -lforms

B)g++ -o main\theApp.exe main\main.o libFolder\libforms.a

兩者產生相同的可執行文件。

  • 這兩種方式讓海灣合作委員會知道什麼 圖書館鏈接有什麼區別?
  • B)有沒有什麼缺點?
+0

我不知道這是否有幫助,但Windows終端不區分大小寫,LlibFOlder與libFolder相同 – KostasRim

+0

第二個不應該工作,我猜你在'-libFolder'中誤添加了短劃線帖子。 –

回答

2

兩個命令的區別是,在第一次添加的路徑鏈接器搜索,你告訴鏈接到搜索在搜索路徑forms庫,並在第二個命令你告訴鏈接器直接鏈接到特定的庫,而無需搜索它。

這兩個命令同樣適用,並且會產生相同的結果。你選擇哪一個完全取決於你。第二種變體唯一的缺點是,如果您必須鏈接多個庫,那麼您必須多次提供相同的路徑,而不必對第一個變體進行操作。

+2

爲了補充說明,第一個命令更加通用,因爲它不關心所討論的庫是靜態庫('lib * .a')還是共享庫,也就是DLL('lib * .dll)。 a'或直接'lib * .dll')。 – rubenvb