我有一个src
目录。在这个目录中,我有Main.hs
个文件和Test
目录。在Test
目录中,我有Test.hs
个模块。我需要用cabal编译它。
在我的cabal文件中,我有:
Executable main
-- .hs or .lhs file containing the Main module.
Main-is: src/Main.hs
和
-- Modules not exported by this package.
Other-modules: Test.Test
当我cabal configure
时,没关系,但是当我尝试cabal build
时,我收到以下错误:
cabal build
Preprocessing executables for main-0.0.1...
cabal: can't find source for Test/Test in ., dist/build/autogen
如何使用Main.hs
文件正确构建.hs
和其他一些目录?
谢谢。
答案 0 :(得分:22)
如果在Test.Test
中定义src/Test/Test.hs
,则需要
hs-source-dirs: src
在Cabal文件的“可执行文件”部分中。请注意,您的main-is
文件路径应该相对于源目录,因此在这种情况下,您应该将其更改为Main.hs
。