Haskell wiki nói rằng bạn nên sử dụng Cabal làm hệ thống xây dựng của bạn. Tuy nhiên, có vẻ như với tôi nhiều hơn nữa hướng vào sản xuất các gói sau đó chỉ cần xây dựng nhị phân. Về cơ bản, tất cả những gì tôi muốn làm là xây dựng mọi tệp * .hs trong thư mục src/của tôi thành một nhị phân riêng biệt trong bin /. makefile này hoàn thành điều này độc đáo, nhưng tôi muốn tìm hiểu về Cabal và điều này có vẻ như một ví dụ tốt để tôi bắt đầu:Làm cách nào để xây dựng một dự án đơn giản với 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/*
Cảm ơn, đó là một khởi đầu tốt đẹp. Tuy nhiên, chạy cấu hình cabal cho biết: 'Lỗi: Không có trường 'Main-Is' được tìm thấy cho TestProject thực thi', có lẽ vì tôi chưa chỉ định một trong TestProject.cabal. Nhưng vì tôi đang cố gắng xây dựng một số tập thi hành, mỗi bản có 'chính' riêng của mình, tôi thực sự không biết phải làm gì. – Psirus
@Psirus: Bạn sẽ muốn một phần 'Thực thi' cho mỗi tệp thi hành mà bạn đang xây dựng. Sau đó, bạn có thể đặt trường 'Main-Is' trong mỗi trường. Nếu bạn chọn "thực thi" khi tạo tệp, bạn phải có ví dụ bạn có thể sao chép trong tệp. – hammar
Cảm ơn bạn đã giúp tôi ở đây. Điều này cũng có tác dụng, nhưng tôi thích một phiên bản "ký tự đại diện", vì vậy tôi không phải viết về cơ bản cùng một thứ lặp đi lặp lại. Ngoài ra, nhưng đây chỉ là nhỏ, tôi có thể có tất cả các tập tin thực thi trong cùng một thư mục? – Psirus