RunGH C выдает «цель 'prog' не является именем модуля или исходным файлом» - PullRequest
0 голосов
/ 18 июня 2020

Я только начинаю работать с Real World Haskell и только что дошел до первого примера программы. Я запускаю GH C на Raspberry Pi, raspbian lite. Программа W C .hs - это

main = interact wordCount
    where wordCount input = show (length (lines input)) ++ "\n"

, и вы вызываете текстовый файл csv, который выглядит как

Paris, France
Ulm, Germany
Auxerre, France
Brunswick, Germany

Когда я пытаюсь запустить эту программу, как указано в книга,

runghc WC < quux.txt

Я получаю ошибку

target ‘prog’ is not a module name or a source file

Что я здесь делаю не так?

Ответы [ 2 ]

0 голосов
/ 24 июня 2020

Похоже, моя установка GH C была несовершенной. Из-за архитектуры ARM RPi и некоторых странных решений, которые они приняли для обеспечения обратной совместимости с Raspbian, в настоящее время вам нужно найти обходные пути для установки GH C. Первое, что я попробовал, было из этого сообщения, которое хорошо работало в GHCI, но не получалось за его пределами.

К счастью, с тех пор люди, более тесно связанные с GH * 1010 Разработчики * проявили интерес к тому, чтобы сделать его совместимым с ARM и RPi, и создали более здоровый процесс установки (хотя все еще не полностью управляемый пакетом) здесь . После переустановки GH C программа заработала.

0 голосов
/ 19 июня 2020

Сообщения об ошибках, которые вы публикуете, предполагают, что файла WC.hs нет в каталоге, в котором вы находитесь при запуске runghc. Последовательность команд работает в обычной системе:

% cat <<EOF >WC.hs
heredoc> main = interact wordCount
    where wordCount input = show (length (lines input)) ++ "\n"
heredoc> EOF
% cat <<EOF >quux.txt
heredoc> Paris, France
Ulm, Germany
Auxerre, France
Brunswick, Germany
heredoc> EOF
% runghc WC.hs < quux.txt
Loaded package environment from /private/tmp/.ghc.environment.x86_64-darwin-8.6.4
4

Так что дважды проверьте свои каталоги и имена файлов.

...