Haskell Stack+;阴谋集团无视';主要是';选项,无法生成应用程序
Q:如何调整cabal(stack?)设置,使Haskell Stack+;阴谋集团无视';主要是';选项,无法生成应用程序,haskell,cabal,haskell-stack,Haskell,Cabal,Haskell Stack,Q:如何调整cabal(stack?)设置,使app/LogAnalysis.hs最终被视为主日志? 下面是我如何得到这个错误的: 使用堆栈新xyz创建新项目 将app/Main.hs重命名为app/LogAnalysis.hs 调整后的main是xyz.cabal文件中的选项 问题是我输入的数据不正确,或者阴谋集团忽略了这个新值。以下是我得到的错误信息: Preprocessing executable 'WeekTwo-exe' for WeekTwo-0.1.0.0... <n
app/LogAnalysis.hs
最终被视为主日志?
下面是我如何得到这个错误的:
- 使用
堆栈新xyz创建新项目
- 将
重命名为app/Main.hs
app/LogAnalysis.hs
- 调整后的
选项main是
文件中的xyz.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.
所讨论的模块是:
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的第二周学习。您是否可以将
模块主位置
更改为模块日志分析位置
?如果你这样做了,你会得到这个错误
Main是
只是说检查此文件中的Main
模块,但它必须仍然是Main
模块,而不是LogAnalysis
模块。这表明应该运行此文件中的主函数,而不是某些其他模块中可能存在的某些主函数。GHC要求需要mainmain::IO()
的模块命名为main
。模块通常必须具有与模块名称相对应的文件路径。你必须再次将LogAnalysis.hs
重命名为Main.hs
。难道Main
不应该覆盖这个吗?我认为Main是
在有几个模块的情况下只能指向右边的Main
模块。当我创建/重命名/调整您的模块时,这个项目对我有效。。。。然后stack exec xyz exe
为我工作,打印“somefunc”。当您得到错误时,您正在运行什么命令?堆栈构建-查看已接受的答案。我误解了main的意思是
,并认为它会让ghc查看不同的模块,而实际上它只告诉ghc在不同的文件中查找模块main
,然后main.hs
。您可以。您只需要告诉GHC您的主模块的名称。您可以在您的阴谋集团文件中使用:ghc选项:-main is LogAnalysis
module LogAnalysis where
import Log
main :: IO ()
main = print (parseMessage "I 29 la la")