2012-12-12 45 views
6

FOO=bar ./configure./configure FOO=bar之間有什麼區別,./configure是由autoconf從configure.am生成的腳本?我知道前者在運行腳本./configure之前將環境變量FOO設置爲bar,後者將字符串FOO=bar傳遞到./configure。我認爲./configure解釋這個(並記住它?)作爲設置變量FOO等於bar,但除此之外,我不知道。特別是,這樣或那樣做有什麼好處?將環境變量傳遞給autoconf的`./configure`

回答

6

將作業作爲參數傳遞給configure可確保作業在config.status中可用,因此它將設置爲config.status --recheck。這是將作業作爲參數的主要優點。請注意,當前autoconf文檔建議通過環境傳遞作業。早期版本的autoconf不允許將分配作爲參數進行配置,因此在運行舊的配置腳本時需要使用舊的表單,並且習慣很難繼續使用該環境。但是,通過參數傳遞任務是一個好習慣。

+0

另請參閱AC_ARG_VAR文檔中_precious variables_的定義。這就是'configure'跟蹤哪些環境變量應該保存爲'--recheck',或者其更改應該使所有使用的配置緩存無效。 – adl

相關問題