2013-03-06 27 views
2

我正在使用automake構建一個C++程序。它使用很多庫,我想動態鏈接。告訴autoconf(僅)一個庫必須靜態鏈接

有,我想要一個單一的庫,我想靜態鏈接。我沒有建立這個庫,我有一個由我想使用的第三方提供的.a文件。

在configure.ac或Makefile.am中,是否有一種簡單的方法來指定該庫必須靜態鏈接,從而保持所有其他庫的正常動態鏈接行爲不變?

回答

0

我找到了答案。

它通過添加庫路徑,在Makefile.am:

programname_LDADD = /usr/lib/libneeded.a 

如果路徑是完全指定一個這樣纔有效。

+0

如果用戶沒有在'/ usr/lib'中安裝庫,這將會失敗。爲什麼甚至打擾使用'automake'? – 2013-03-10 14:19:19

1

靜態或動態鏈接的決定是由用戶決定的,而不是維護者,所以嘗試在自動工具元文件中做出決定是沒有意義的。 如果用戶想靜態鏈接,最可靠的做法是確保鏈接器搜索的目錄中不存在動態庫。