2016-11-23 43 views
0

我想編譯一個哈斯克爾源包作爲動態庫與OCaml代碼一起使用。我試着在源文件的.cabal文件上使用--enable-shared選項,cabal install,我得到了一個Perhaps you haven't installed the "dyn" libraries for package 'zeromq4-haskell-0.6.5'錯誤。經過一番Google搜索之後,我意識到依賴項也必須被編譯爲動態庫。我下載了zeromq的源代碼包,並嘗試使用--enable-shared選項安裝zeromq包。這次我得到了一個與zeromq的依賴關係類似的錯誤。我嘗試過這樣做4-5次,並在每個級別獲得一個不同的依賴關係的錯誤。編譯哈斯克爾源作爲動態庫

我在這裏犯了一個錯誤嗎?我怎樣才能讓所有的依賴項安裝爲動態庫?

謝謝!

回答

1

如果您一般要具有共享庫,您可以永久在.cabal/config啓用:

shared: True 

然而,它只會影響之後安裝的庫,所以你可能要清除所有庫和啓動再次。

如果這僅僅是一次性的,你可能只是用於這一目的創建一個小集團沙:

cd yourlib 
cabal sandbox init 
cabal install --enable-shared 

結果將在目錄.cabal-sandbox