Что такое опция -i при компиляции файла hs с использованием GHC и как это сделать в GHCi? - PullRequest
0 голосов
/ 24 июня 2011

Хорошо, я использовал параметр компиляции -i, чтобы указать папку для какого-либо источника на haskell при компиляции с использованием GHC.

ghc -threaded -i/d/haskell/src --make xxx.hs

Я понимаю, что эти файлы используются как "библиотеки", в то время каккомпилировать, но могу ли я сделать то же самое в GHCi?

Я обычно импортирую предварительно упакованную библиотеку haskell, например import Data.List или :m +Data.List.

Я пробовал import /d/haskell/src - не работает!

РЕДАКТИРОВАТЬ Из документа Haskell: Глава 2 Использование GHCi Обратите внимание, что в режиме GHCi и ––make опция -i используется для указания пути поиска для исходных файлов.тогда как в стандартном режиме пакетной компиляции опция -i используется для указания пути поиска файлов интерфейса.

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Флаг '-i' в порядке, проблема с загрузкой модуля.

В ghci :m будет переключаться только на предварительно скомпилированные модули или на модули, указанные в командной строке. Вам нужно использовать :add MyModule, чтобы указать ghci скомпилировать исходный файл на Haskell.

Если у вас есть

./src/Module/SubModule.hs

Вы можете загрузить его следующим:

localuser$ ghci -isrc
GHCi, version 7.0.3: 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 package ffi-1.0 ... linking ... done.
Prelude> :add Module.SubModule
[1 of 1] Compiling Module.SubModule        ( src/Module/SubModule.hs, interpreted )
Ok, modules loaded: Module.SubModule.
*Module.SubModule>
0 голосов
/ 24 июня 2011

Я думаю, что вы можете сказать :set -i /d/haskell/src;многие, но не все опции GHC могут быть установлены таким образом.Кроме того, вы можете использовать его как параметр напрямую: ghci -i /d/haskell/src.

...