我想和Pong.hs一起玩。我下载了.hs文件,但当我以崇高文本(用Haskell插件)打开它时,我被告知Graphics.Gloss和Graphics.Gloss.Interface.Pure.Game丢失了。
> cabal install Graphics.Gloss找不到Graphics.Gloss。胡格尔帮我找到的。文件中的一个注释提到编译Gloss。所以我试着
> cabal install Gloss虽然我不明白为什么。崇高的文本插件也是快乐的。但是当我试图将代码加载到WinGHCi时,我得到了
Pong.hs:22:1: error:
Failed to load interface for ‘Graphics.Gloss’
Use -v to see a list of the files searched for.
Pong.hs:23:1: error:
Failed to load interface for ‘Graphics.Gloss.Interface.Pure.Game’
Use -v to see a list of the files searched for.我很想知道下一步该做些什么。
谢谢。
发布于 2017-01-06 21:39:58
首先,一些背景:Graphics.Gloss是一个模块的名称--一个命名代码片段的集合。gloss是包的名称--一个模块的集合。cabal install接受包名并将该包安装到包数据库中--一个包集合。
现在,我们有了我们需要讨论的词汇,讨论您观察到的内容,以及如何取得进展。
cabal install Graphics.Gloss找不到Graphics.Gloss
对,Graphics.Gloss是一个模块,而不是一个包。gloss包提供了这个模块。我不知道有什么可靠的工具可以将模块名映射到提供它们的包中,但是Hoogle和Hayoo都会告诉您与它们的搜索结果相关联的包名。(我不把它们归类为“可靠的”,因为它们只索引了黑客攻击的一个子集。)
cabal install Gloss成功
虽然包名为gloss,而不是Gloss,但cabal install尝试执行正确的操作,如果只在情况不同的情况下安装代理程序包。
当我试图将代码加载到WinGHCi时,我得到了一个错误
我敢打赌,Sublime和WinGHCi正在使用不同的包数据库;例如,您可能正在使用一个阴谋沙箱,而Sublime已经找到了这一点。您可以尝试运行这两个命令并比较它们的输出:
cabal sandbox hc-pkg list gloss
ghc-pkg list gloss注意,在不同的目录和不同的环境中运行时,前者的行为会有所不同,所以要注意使用与运行cabal install Gloss相同的步骤来运行它!
如果您已经在沙箱中安装了gloss,那么第一个命令应该显示与沙箱关联的包数据库的位置以及安装在沙箱中的光泽库的版本。第二种不应显示结果。如果是这样的话,可以尝试使用适合沙箱的环境运行WinGHCi;例如,如下所示
cabal exec winghci应该做到这一点(如果winghci是启动WinGHCi的命令--这里没有WinGHCi框,所以我不确定)。同样,在正确的目录中设置正确的环境变量对此命令的工作非常重要,因此请确保按照运行cabal install Gloss和前面的包数据库查询的相同步骤运行它。
https://stackoverflow.com/questions/41514559
复制相似问题