Проблема с указанием исходного каталога для GHC - PullRequest
9 голосов
/ 23 апреля 2011

Это неловко простая проблема, но ее решение пока ускользает от меня.Как видно из заголовка, я просто хочу указать GHC расположение всех моих исходных файлов.Это должно быть просто; GHC руководство пользователя :

-i dirs

Этот флаг добавляет список каталогов, разделенных двоеточиями, к пути поиска.

Итак, я попробовал следующие вызовы:

ghc -isrc/ -v -outputdir build/ --make -Wall Main.hs
ghc -isrc/: -v -outputdir build/ --make -Wall Main.hs
ghc -i:src/: -v -outputdir build/ --make -Wall Main.hs
ghc -i"src/" -v -outputdir build/ --make -Wall Main.hs
ghc -i"src/": -v -outputdir build/ --make -Wall Main.hs
ghc -i:"src/": -v -outputdir build/ --make -Wall Main.hs

При каждом вызове GHC выдавал ошибку: ": not find file: Main.hs "

Как вы, наверное, догадались, Main.hs находится в подкаталоге из рабочего каталога с именем" src ". На всякий случай это важнов Windows XP, и я использую GHC 6.12.2. Я предполагаю, что есть небольшая проблема, которую я просто упускаю.

1 Ответ

11 голосов
/ 23 апреля 2011

-i указывает, где GHC будет искать другие исходные файлы, отличные от тех, которые вы указали в командной строке. Так что вашему Main.hs также понадобится префикс src /. Э.Г.

$ ghc -isrc src/Main.hs --make 
[1 of 1] Compiling Main             ( src/Main.hs, src/Main.o )
Linking src/Main ...

В качестве альтернативы вы можете использовать cabal, и cabal init сгенерирует все метаданные для вас.

...