как использовать объектный файл, созданный с помощью Cabal?

У меня есть исходный файл, который можно компилировать только с помощью Cabal. Это тестовый код, и в прошлом (до того, как я усложнил свою среду Haskell) я запускал функции из ghci. Я знаю, что ghci может использовать объектные файлы для загрузки кода, но когда я пытаюсь это сделать, я получаю следующую ошибку. Так что же мне не хватает?

[mlitchard @ Boris Boris_Test] $ ghci /home/mlitchard/Boris_Test/dist/build/Boris_Test/Boris_Test-tmp/Main.o

GHCi, version 7.4.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading object (static) /home/mlitchard/Boris_Test/dist/build/Boris_Test/Boris_Test-tmp/Main.o ... done
final link ... ghc: /home/mlitchard/Boris_Test/dist/build/Boris_Test/Boris_Test-tmp/Main.o: unknown symbol

monadzmcontrolzm0zi3zi1zi3_ControlziMonadziTransziControl_zdfMonadBaseControlIOIO_closure' linking extra libraries/objects failed


person Michael Litchard    schedule 24.05.2012    source источник


Ответы (1)


Когда вы указываете объектные файлы вручную, GHCi не может сказать, от чего зависит объектный файл, что он мог бы делать с .hs файлами, потому что в этой ситуации у него есть доступ к import ... строкам.

Следовательно, вам необходимо вручную добавить объектные файлы всех соответствующих зависимостей, в данном случае путем добавления -package monad-control при вызове GHCi.

person dflemstr    schedule 24.05.2012