将haskell源编译为动态库

时间:2016-11-23 16:03:59

标签: haskell ghc cabal

我正在尝试将Haskell源包编译为与OCaml代码一起使用的动态库。我尝试在源代码的.cabal文件中使用--enable-shared选项和cabal install,但出现Perhaps you haven't installed the "dyn" libraries for package 'zeromq4-haskell-0.6.5'错误。经过一番谷歌搜索后,我意识到依赖关系也必须编译为动态库。我下载了zeromq的源代码包,并尝试使用--enable-shared选项安装zeromq软件包。这次我得到了一个与zeromq依赖关系类似的错误。我尝试这样做4-5次,并在每个级别获得一个不同依赖的错误。

我在这里弄错了吗?如何将所有依赖项安装为动态库?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您通常希望拥有共享库,则可以在.cabal/config

中永久启用它
shared: True

但是,它只会影响之后安装的库,因此您可能希望清除所有库并重新开始。

如果这只是一次性的,您可以为此目的创建一个cabal沙箱:

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

结果将在目录.cabal-sandbox