Плагины Haskell и песочница Cabal

Итак, я пытаюсь использовать пакет плагинов для динамической загрузки функции 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Я получаю стандартную ошибку "модуль не найден". И когда он не установлен в моей песочнице, я получаю тот же модуль не найден ошибка, пытаясь скомпилировать мой основной программный код.

Документация по плагинам в лучшем случае скудна. Есть мысли о том, как это решить?

1 ответ

Я получил это с помощью System.Plugins.Make, чтобы сделать компиляцию вместо того, чтобы полагаться на уже существующие объектные файлы. Не полное решение, не объясняет проблему, но оно работает для меня на данный момент.

Другие вопросы по тегам