首页 文章

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

提问于
浏览
1

这个问题在这里已有答案:

Q: How to adjust cabal(stack?) settings so that app/LogAnalysis.hs is treated as main log after all?

这是我如何得到这个错误:

  • stack new xyz 创建了新项目

  • app/Main.hs 重命名为 app/LogAnalysis.hs

  • xyz.cabal 文件中调整了 main-is 选项

问题是我输入的数据不正确或者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")

版本:Stack - 版本1.3.2 GHC - 7.15 Cabal - 1.24.0.0

PS如果有任何兴趣我在Haskel课程CIS 194的第二周做 .

1 回答

  • 3

    是否有可能将 module Main where 更改为 module LogAnalysis where ?如果你这样做,你会得到这个错误 .

    Main-is 只是说检查此文件中的 Main 模块,但它仍然必须是 Main 模块,而不是 LogAnalysis 模块 . 这清楚地表明应该运行此文件中的主要功能,而不是某些其他模块中可能存在的某些主要功能 .

相关问题