2013-12-21 2 views
0

Я только что установил EclipseFP, и теперь я пытаюсь загрузить модуль в GHCi. Проблема в том, что GHCi не загружает библиотеки, установленные с помощью cabal, на которые ссылается мой модуль. После того, как я поставил -v в GHCi и побежал: г, это выглядит как GHCi только ищет библиотеки, которые установлены глобально, а не библиотеки, которые установлены для локального пользователя:EclipseFG не ищет «установленные пользователем» модули

Could not find module `Text.ParserCombinators.Parsec' 
There are files missing in the `parsec-3.1.3' package, 
try running 'ghc-pkg check'. 
Locations searched: 
    Text/ParserCombinators/Parsec.hs 
    Text/ParserCombinators/Parsec.lhs 
    /Library/Haskell/ghc-7.6.3/lib/parsec-3.1.3/lib/Text/ParserCombinators/Parsec.hi 

Однако, когда я m запускает GHCi в терминале или через Haskell-Mode в emacs, все работает отлично!

Мне интересно, если что-то не так с моей конфигурацией в EclipseFP или я могу заставить GHCi искать локальные модули пользователя.

Кстати, я уже пробовал опцию -i, чтобы пройти локальный путь поиска CHCi

-i~/Library/Haskell/ghc-7.6.3/lib/ 

, но, по-видимому, GHCi ищет только исходные файлы (например, Parsec.hs и Parsec.lhs), но не файлы интерфейса (Parsec.hi) по указанному пути.

Буду признателен, если вы можете помочь мне испытать радость программирования Haskell в Eclipse!

Спасибо!

ответ

0

В Eclipse для вашего запуска GHCi на вашем модуле создана конфигурация запуска. Это даст вам точные параметры, которые передаются GHCi. Он должен ссылаться на пакет db пользователя и все пакеты, необходимые вашему модулю (убедитесь, что соответствующие зависимости находятся в файле Cabal). По умолчанию EclipseFP устанавливает пакеты в пользовательский db, поэтому обычно это нормально работает. Вам не нужно добавлять конкретные каталоги в GHCi в EclipseFP.

+0

Спасибо! Мне не хватало связи между файлом cabal и GHCi. Я сделал некоторый прогресс, но теперь buildwrapper использует более старую версию библиотеки cabal, чем cabal-install. Я нашел ваш ответ на аналогичную проблему https://github.com/JPMoresmau/BuildWrapper/issues/18. Поэтому, я думаю, мне нужно либо перестроить мой ghc (что очень больно через порт), либо отказаться от установки cabal-install. – Salman

+0

Да, точно, к сожалению, мы застряли в трехсторонней зависимости от GHC и Cabal, поэтому вам нужно использовать ту же самую версию, что и ваш ghc. –