Итак, я пытаюсь использовать пакет плагинов для динамической загрузки функции haskell из исходного файла. Исходный файл зависит от пакета foo
с модулем Foo.Bar
. Я запускаю свой проект в песочнице Cabal, где у меня установлен foo
. И моя основная программа, и модуль, который я загружаю с плагинами, зависят от 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.
Когда он не установлен в ~/.cabal
, я получаю стандартную ошибку «модуль не найден». И когда он не установлен в моей песочнице, я получаю ту же ошибку модуля, не найденную при попытке скомпилировать мой основной программный код.
Документация по плагинам в лучшем случае скудна. Любые мысли о том, как решить эту проблему?