2010-06-18 40 views
10

請問您能解釋一下,如何將-l選項與.la文件鏈接起作用?gcc -l選項和.la庫文件

據我的經驗達到 - 我只與靜態庫(.a)文件鏈接。

現在我看看一些Qt生成的Makefiles,並且無法弄清楚,當指定-l QtCore開關時,鏈接器如何使用/打開libQtCore.la文件,而不是查找libQtCore.a。

此外 - gcc手冊狀態,即-l [庫名]開關將包括lib [庫名] .a,而不是lib [庫名] .la。

+0

我不熟悉'.la'這個擴展名。 'file yourfile.la'說什麼?也許它與對象存檔一樣,可以重命名爲'.a' – sellibitze 2010-06-18 12:36:16

回答

12

.la文件據我所知libtool垃圾,不應該手動鏈接。無論出於何種原因它們都由libtool在內部使用。您應該鏈接到*.a文件。在Qt安裝/構建中應該有*.a文件鏈接到。

+0

如何使用.la編譯以創建靜態庫,例如example.la – HMS 2014-02-26 06:59:25

+1

@Muhammad正如我所說的,'* .la'文件是垃圾。它們不是靜態庫。打開一個,你會看到它是一堆文本。你想要'* .a'文件。 – rubenvb 2014-02-26 08:19:01