Haskell Stack + Cabal 忽略 'main-is' 选项并且无法构建应用程序

Haskell Stack + Cabal ignore 'main-is' option and fail to build app

问:如何调整 cabal(stack?) 设置,使 app/LogAnalysis.hs 最终被视为主日志?

以下是我自己遇到此错误的原因:

问题是我以某种方式错误地输入了该数据,或者 cabal 忽略了该新值。这是我得到的错误:

Preprocessing executable 'WeekTwo-exe' for WeekTwo-0.1.0.0...

<no location info>: error:
    output was redirected with -o, but no output will be generated
because there is no Main module.

这是 xyz.cabal

中的相关条目
executable WeekTwo-exe
    hs-source-dirs:      app
    main-is:             LogAnalysis.hs
    ghc-options:         -threaded -rtsopts -with-rtsopts=-N
    build-depends:       base
                       , WeekTwo
    default-language:    Haskell2010

有问题的模块是:

module LogAnalysis where
import Log

main :: IO ()
main = print (parseMessage "I 29 la la")

版本: 堆栈 - 版本 1.3.2 GHC - 7.15 阴谋集团 - 1.24.0.0

PS 如果有任何兴趣,我将参加 Haskel CIS 194 课程的第二周。

您是否可以将 module Main where 更改为 module LogAnalysis where?如果你这样做了,你就会得到这个错误。

Main-is 只是说检查此文件中的 Main 模块,但它必须仍然是 Main 模块,而不是 LogAnalysis 模块。这就明确了这个文件中的main函数应该是运行,而不是一些其他模块中可能恰好存在的main函数