Итак, я пытаюсь использовать пакет Plugins для динамической загрузки функции haskell из исходного файла. Исходный файл зависит от пакета foo
с модулем Foo.Bar
. Я запускаю свой проект в песочнице Cabal, где у меня установлен foo
. Как моя основная программа, так и модуль, который я загружаю с помощью плагинов, зависят от foo
. Я всегда получаю один из следующих двух ошибок:Плагины Haskell и песочница cabal
Когда я 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
, я получаю стандартный " модуль не найден ". И когда я не установил его в своей песочнице, я получаю тот же модуль, что и не найденная ошибка, пытаясь скомпилировать мой основной программный код.
Документация плагинов в лучшем случае недостаточна. Любые мысли о том, как это решить?
Было бы полезно, если бы вы дали минимум, компилируя пример. –
Я сделаю это завтра. В настоящее время он находится в довольно большом проекте Yesod, мне нужно извлечь минимальную часть. – jmite
У меня возникли проблемы с минимальным примером. Есть идеи? – jmite