试图在我名为“ MyFirstProject”的文件中拥有2个可执行文件
executables:
run-it:
source-dirs: app/
main: Main.hs
dependencies:
MyFirstProject
hello:
source-dirs: app/Hello/
main: Main.hs
(MyFirstProject是该项目内的一个库,但完全不相关)
± |master U:3 ?:2 ✗| → tree app/
app/
├── Hello
│ └── Main.hs
└── Main.hs
堆栈构建失败,因为我的hello的模块未称为Main:
<no location info>: error:
output was redirected with -o, but no output will be generated
because there is no Main module.
这是正确的-给定上面的树,该模块名为Hello.Main:
module Hello.Main where
main :: IO ()
main = putStrLn "Hello, world"
但是,当然,如果我将其称为Main,我将得到预期的结果:
File name does not match module name:
Saw: ‘Main’
Expected: ‘Hello.Main’
|
1 | module Main where
| ^^^^
感觉像是抓住22,是吗?我无法调用模块Main并将其放置在app /的根目录下,因为其中已经有一个默认生成的模块(如果我将'hello'注释掉的话,这不会产生问题)