2013-10-08 27 views
1

Autotools知道約target_LDFLAGStarget_LDADD。區別在於LDADD稍後會被添加到命令行,而不是LDFLAGS,並且它是放置庫(-lfoo)的正確位置。 See also this question.環境變量告訴autotools追加庫?

現在,我可以在運行./configure之前設置環境變量LDFLAGS,並且它被拾取。有沒有類似的LDADD?我想要做的事,如:

export LDADD="-lfoo" 
./configure 
make 

,並有-lfoo出現所有的目標文件,而鏈接。我嘗試了以上,但它沒有奏效。 LDFLAGS的作品,但把圖書館放在錯誤的地方。我能做什麼?

+0

你嘗試過'./configure --help'嗎?它沒有提及'LDADD',但它提到'LIBS'。 – DanielKO

回答

2

autoconf manual建議應將這些"-lfoo"選項添加到變量LIBS,如./configure --help所述。

你可以有:在configure.acAC_SUBST(target_LIBS, $LIBS),並在Makefile.am

target_LDADD = $(target_LIBS)

理想的,當然,將是配置腳本來自動設置target_LIBS,如果可能的話...

+0

請勿在配置腳本中使用'AC_SUBST' automake變量,這不應該如何使用它們。 – DanielKO

+0

@DanielKO - 在此上下文中,'target_LIBS'不是automake變量。這是將配置時間值傳遞給automake的正確方法。 –

+0

是的,使用幾個字符看起來像automake變量的變量確實是**的方式。也使用target_LDFLAG,生活更激烈。 – DanielKO