在Haskell中创建一个外国图书馆

时间:2017-01-08 05:06:09

标签: haskell ghc

我在文档和Google上花了大约一天时间,似乎无法找到在Haskell中运行动态外部库的合理方法。

编写一个可以编译成C或C ++程序的静态库相当容易。但是,使用我收集的方法创建动态库,正常方式(ghc -dynamic -shared -fPIC)在调用hs_init(libHSghc-prim中的未定义符号)时会导致运行时错误。如果我手动链接libHSrts与-l标志,一切都按预期工作。但是这样做需要我用我的程序分发所有基本的Base Haskell库。我还发现this,这意味着我可以重新编译GHC然后静态链接所有内容以解决我的链接器问题,但我想避免在可能的情况下需要自定义构建的GHC。

我做错了什么?可以轻松构建可执行文件而无需分发整个运行时,因此对我来说很奇怪,我在做同样的事情时遇到了很多麻烦,但作为一个库

0 个答案:

没有答案