首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Haskell中加载Graphics.Gloss

无法在Haskell中加载Graphics.Gloss
EN

Stack Overflow用户
提问于 2017-01-06 21:22:35
回答 1查看 2.5K关注 0票数 0

我想和Pong.hs一起玩。我下载了.hs文件,但当我以崇高文本(用Haskell插件)打开它时,我被告知Graphics.GlossGraphics.Gloss.Interface.Pure.Game丢失了。

代码语言:javascript
复制
> cabal install Graphics.Gloss

找不到Graphics.Gloss。胡格尔帮我找到的。文件中的一个注释提到编译Gloss。所以我试着

代码语言:javascript
复制
> cabal install Gloss

虽然我不明白为什么。崇高的文本插件也是快乐的。但是当我试图将代码加载到WinGHCi时,我得到了

代码语言:javascript
复制
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.

我很想知道下一步该做些什么。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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已经找到了这一点。您可以尝试运行这两个命令并比较它们的输出:

代码语言:javascript
复制
cabal sandbox hc-pkg list gloss
ghc-pkg list gloss

注意,在不同的目录和不同的环境中运行时,前者的行为会有所不同,所以要注意使用与运行cabal install Gloss相同的步骤来运行它!

如果您已经在沙箱中安装了gloss,那么第一个命令应该显示与沙箱关联的包数据库的位置以及安装在沙箱中的光泽库的版本。第二种不应显示结果。如果是这样的话,可以尝试使用适合沙箱的环境运行WinGHCi;例如,如下所示

代码语言:javascript
复制
cabal exec winghci

应该做到这一点(如果winghci是启动WinGHCi的命令--这里没有WinGHCi框,所以我不确定)。同样,在正确的目录中设置正确的环境变量对此命令的工作非常重要,因此请确保按照运行cabal install Gloss和前面的包数据库查询的相同步骤运行它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41514559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档