Haskell插件和cabal沙箱

jmi*_*ite 6 haskell dynamic-linking ghc cabal cabal-dev

所以,我正在尝试使用Plugins包从源文件动态加载haskell函数.源文件取决于foo具有模块的包Foo.Bar.我正在我foo安装的Cabal沙箱中运行我的项目.我的主程序和我用插件加载的模块都依赖于foo.我总是得到以下两个错误之一:

当我foo安装~/.cabal,我收到错误:

GHCi runtime linker: fatal error: I found a duplicate definition for symbol
  aizmvszmaizmlibzm0zi1_FooziBar_zdfTypeableBazzuds2_closure
whilst processing object file
  /home/joey/.cabal/lib/foo-0.1/ghc-7.6.3/HSfoo-0.1.o
This could be caused by:
  * Loading two different object files which export the same symbol
  * Specifying the same object file twice on the GHCi command line
  * An incorrect `package.conf' entry, causing some object to be
    loaded twice.
GHCi cannot safely continue in this situation.  Exiting now.  Sorry.
Run Code Online (Sandbox Code Playgroud)

当我没有安装它时~/.cabal,我得到一个标准的"模块未找到"错误.当我没有将它安装在我的沙盒中时,我得到了相同的模块未找到错误,试图编译我的主程序代码.

插件文档充其量是稀缺的.有关如何解决这个问题的任何想法?

jmi*_*ite 1

我通过使用 System.Plugins.Make 实际进行编译来实现此目的,而不是依赖预先存在的目标文件。这不是一个完整的解决方案,不能解释问题,但目前对我有用。