Haskell Stack + Cabal 忽略 'main-is' 选项并且无法构建应用程序
Haskell Stack + Cabal ignore 'main-is' option and fail to build app
问:如何调整 cabal(stack?) 设置,使 app/LogAnalysis.hs
最终被视为主日志?
以下是我自己遇到此错误的原因:
- 使用
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")
版本:
堆栈 - 版本 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函数
问:如何调整 cabal(stack?) 设置,使 app/LogAnalysis.hs
最终被视为主日志?
以下是我自己遇到此错误的原因:
- 使用
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")
版本: 堆栈 - 版本 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函数