2017-07-25 87 views
0

在它說,陰謀集團經常與由於命令行界面實際配置和構建軟件包autoconf和automake的比較Cabal User Guide遵循相同的步驟步驟:爲什麼要配置cabal?

./configure --prefix=... 
make 
make install 

相比

cabal configure --prefix=... 
cabal build 
cabal install 

我理解是./configure使用一個配置文件(由autoconf生成)來使make過程適應它將運行的環境,並檢查依賴關係。所以./configure因此總是有一個「輸入」符合。但是,如果cabal configure沒有給出任何參數,它會怎麼做,以及爲什麼在運行cabal build之前有必要?

回答

2

cabal configure一步做至少兩件事情我知道的:

  • 檢查包的描述分析確定。
  • 檢查是否已安裝所有必需的依賴關係(如果沒有,則報告錯誤)。

基本上它運行約束求解器來決定你準備用哪個包來構建。 (例如,如果您安裝了ByteString的多個版本,您將使用哪個版本?那麼它可能取決於您所依賴的軟件包所期望的版本......)

另外我相信可以提供選項在配置的時候,這正好改變了軟件包的哪些功能(但我沒有這方面的經驗)。

我覺得原來你打電話configure你可以調用build之前,但我相信現在cabal命令行工具會自動爲你做這一步在許多情況下。 (例如,如果包描述文件比配置DB更新,cabal run現在似乎自動重新配置。)

相關問題