gpt4 book ai didi

haskell - 具有错误模块 ‘main:Main’ 的堆栈 ghci 在多个文件 : 中定义

转载 作者:行者123 更新时间:2023-12-04 13:09:53 25 4
gpt4 key购买 nike

我有一个小的haskell程序,它可以用堆栈正常构建和执行。当我用 stack ghci 启动它时我有一条我不明白且无法继续的错误消息。

GHCi, version 8.10.4: https://www.haskell.org/ghc/  :? for help
[1 of 3] Compiling Lib ( /home/frank/Workspace11/primo/src/Lib.hs, interpreted )
[2 of 3] Compiling YamlRead ( /home/frank/Workspace11/primo/src/YamlRead.hs, interpreted )
[3 of 3] Compiling Main ( /home/frank/Workspace11/primo/app/Main.hs, interpreted )
Ok, three modules loaded.
Loaded GHCi configuration from /home/frank/Workspace11/primo/.ghci

<no location info>: error:
module ‘main:Main’ is defined in multiple files: /home/frank/Workspace11/primo/app/Main.hs
/home/frank/Workspace11/primo/app/Main.hs
我不明白为什么一样 Main在完全相同的文件中列出了两次。
我有一条关于 Paths_primo 的类似警告消息这是一个已知错误(堆栈问题 #5439),我按照建议修复了 see .
什么是解决这个错误的方法?我没用过 stack很多 - 我做错了什么吗?

最佳答案

这看起来像是 Main.hs 的标志或 Main无意中在您的堆栈中多次列出 package.yaml , 这样 ghc多次出现时调用它。
单独使用 GHC 可以轻松重现此错误,例如:

> echo 'main = putStrLn "hello"' > Hello.hs

> ghc Hello Hello.hs
<no location info>: error:
module ‘main:Main’ is defined in multiple files: Hello.hs Hello.hs
我会用 --verbose 运行 Stack并查看 GHCi 是如何被调用的,并仔细检查 package.yaml和生成的 Cabal 文件。 (如果您编辑问题以包含该问题,我们可能会提供更具体的帮助。)
我可以想到几个可能的原因,例如从字面上列出 MainMain.hs多次(例如在 exposed-modulesother-modulesmain-is 中);或类似 ghc-options 中缺少选项值的交互导致后续标志被误解的字段。

关于haskell - 具有错误模块 ‘main:Main’ 的堆栈 ghci 在多个文件 : 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66606922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com