6
Haskell wiki指出你应该使用Cabal作为你的构建系统。然而,在我看来更多的是制作软件包,然后只是构建二进制文件。基本上,我想要做的就是将我的src /目录中的每个* .hs文件构建成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配置说:'错误:没有找到可执行TestProject'的Main-Is'字段,可能是因为我没有在TestProject.cabal中指定一个字段。但是因为我正在尝试构建多个可执行文件,每个文件都有自己的'main',所以我不知道该怎么做。 – Psirus 2012-02-15 20:30:46
@Psirus:您需要为每个可执行文件创建一个“可执行文件”部分。然后你可以在每个中设置Main-Is字段。如果您在生成文件时选择了“可执行文件”,则应该有一个示例可以在文件中复制。 – hammar 2012-02-15 20:32:07
谢谢你在这里帮助我。这也适用,但我更喜欢“通配符”版本,这样我就不必一遍又一遍地写出基本相同的东西。另外,但这只是次要的,我可以在同一个目录中拥有所有可执行文件吗? – Psirus 2012-02-15 20:41:42