2
我試圖編寫一個需要輸出外部程序(比如lame,mp3編碼器)的Haskell程序。雖然在cabal中聲明依賴庫很容易,但如何聲明依賴於可執行文件?如何讓Cabal搜索外部程序?
我試圖編寫一個需要輸出外部程序(比如lame,mp3編碼器)的Haskell程序。雖然在cabal中聲明依賴庫很容易,但如何聲明依賴於可執行文件?如何讓Cabal搜索外部程序?
您目前不能在.cabal文件中爲外部可執行文件添加依賴項,而不是已知構建工具的列表(請參閱build-tools:alex例如)。
但是,您可以指定構建類型:配置,然後使用單獨的配置腳本搜索任何其他二進制文件(例如,基於autoconf的配置腳本完全正常,可用於在您的資源)。
請注意,在編譯時搜索運行時依賴關係(如跛腳編碼器)可能是一個壞主意,因爲許多程序包系統上的構建和運行環境都不相同。在程序啓動時動態搜索所需的二進制文件可能是一個更好的主意。
例如,hmp3會尋找mpg321與
mmpg <- findExecutable (MPG321 :: String)
其中MPG321是經由的./configure選項中確定的程序的名稱。欲瞭解更多信息,請參見黑線鱈:
確實驚天動地提供像什麼「後安裝鉤子」,將允許,例如,嘗試在那個驚天動地包的時間安裝一個MP3編碼器安裝,而不是內置? – 2010-04-18 05:58:59
您可以在Setup.hs中添加鉤子來編寫像這樣的任何階段的腳本,但理想情況下安裝外部程序將留給包系統(.deb或.rpm等),該系統知道如何查找和構建非Haskell依賴關係。 – 2010-04-18 19:36:32