В вики Haskell говорится, что вы должны использовать Cabal как свою систему сборки. Тем не менее, мне кажется, гораздо больше направлено на создание пакетов, а затем просто создание двоичных файлов. В принципе, все, что я хочу сделать, это построить каждый * .hs-файл в моем каталоге src/в отдельный двоичный файл в bin /. Это Makefile выполняет это хорошо, но я хочу, чтобы узнать о Кабале и это, кажется, как хороший пример, чтобы меня начал:Как создать простой проект с помощью Cabal?
GHC = ghc
GHCFLAGS = -outputdir bin
SRC = $(wildcard src/*.hs)
BIN = $(patsubst src/%.hs,%,$(SRC))
all: $(addprefix bin/, $(BIN))
bin/%: src/%.hs
$(GHC) $(GHCFLAGS) $< -o [email protected]
clean:
rm bin/*
Спасибо, это хороший старт. Тем не менее, запущенный cabal configure говорит: «Ошибка: нет« Main-Is »найдено для исполняемого TestProject', по-видимому, потому, что я не указал его в TestProject.cabal. Но так как я пытаюсь создать несколько исполняемых файлов, каждый из которых имеет свой собственный «основной», я не знаю, что делать. – Psirus
@Psirus: вам понадобится один раздел «Исполняемый файл» для каждого исполняемого файла, который вы создаете. Затем вы можете установить поле «Main-Is» в каждом. Если вы выбрали «исполняемый файл» при создании файла, должен быть пример, который вы можете скопировать в файл. – hammar
Спасибо, что помогли мне здесь. Это также работает, но я бы предпочел «подстановочную» версию, так что мне не нужно писать в основном одно и то же снова и снова. Кроме того, но это только незначительно, могу ли я иметь все исполняемые файлы в одном каталоге? – Psirus