2017-01-06 12 views
0

Pong.hsで遊びたかったです。 .hsファイルをダウンロードしましたが、Sublime Text(Haskellプラグイン)で開くと、Graphics.GlossGraphics.Gloss.Interface.Pure.Gameが欠落していると言われました。HaskellでGraphics.Glossを読み込めません

Graphics.Glossが見つかりませんでした。 Hoogleは私のためにそれを見つけました。上記ファイルのコメントの1つはGlossです。だから私は試しました

> cabal install Gloss 

私はなぜ成功しなかったのですか? Sublime Textのプラグインも満足していました。私は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. 

を得ました。

ありがとうございました。

答えて

4

最初に、いくつかの背景:Graphics.Glossは、モジュールの名前です。名前付きコードスニペットのコレクションです。 glossはパッケージの名前で、モジュールの集合です。 cabal installはパッケージ名を受け取り、そのパッケージをパッケージデータベース(パッケージの集合)にインストールします。

ここでは、あなたが観察したことについて議論する必要があり、どのように進歩を遂げることができるのかについての語彙があります。

cabal install Graphics.Gloss

Graphics.Gloss

右を見つけることができなかった、Graphics.Glossはモジュールではなくパッケージです。 glossパッケージはそのモジュールを提供します。モジュール名を提供するパッケージにモジュール名をマッピングするための信頼できるツールはわかりませんが、HoogleとHayooはどちらも検索結果に関連付けられたパッケージ名を教えてくれます。パッケージが行うことにglossなくGlosscabal install試みを命名されているが(私は「信頼性」などではないクラスにそれらを、彼らはインデックスHackageのサブセットのみを理由ください。)

cabal install Gloss

を成功しました大文字と小文字の違いがある場合は、サロゲートパッケージをインストールしてください。私はWinGHCiにコードをロードしようとしたとき

は、私は崇高テキストとWinGHCiが異なるパッケージデータベースを使用していることを賭けるだろう[エラー]

を得ました。たとえば、Cabalのサンドボックスを使用していて、Sublime Textがそれを選択したとします。あなたはこれらの2つのコマンドを実行し、その出力を比較してみてください:前者は異なるディレクトリからと異なる環境で実行すると動作が異なりますので、あなたが実行するために使用したのと同じ手順を使用して、それを実行するために世話をすること

cabal sandbox hc-pkg list gloss 
ghc-pkg list gloss 

注意をcabal install Gloss

グロスをサンドボックスにインストールした場合、最初のコマンドはそのサンドボックスに関連付けられているパッケージデータベースの場所とそこにインストールされている光沢ライブラリのバージョンを表示します。 2番目には結果が表示されません。そのような場合は、サンドボックスに適した環境を使用してWinGHCiを実行してみてください。 ( - ここには、Windowsのボックスので、私は確かに知っていないwinghciがWinGHCiを起動するコマンドである場合)は、例えば、

cabal exec winghci 

のようなものは、トリックを行う必要があります。再度正しい環境変数を設定して正しいディレクトリに置くことは、このコマンドが機能する上で重要ですので、cabal install Glossと以前のパッケージデータベースクエリを実行したのと同じ手順に従って実行してください。

+0

詳細な回答ありがとうございます。 Cabalが安全ではないと言ったにもかかわらず、私は 'pong.hs'を置いたディレクトリに行き、' cabal install Gloss --reinstall'を実行しました。 (私が最初に 'install'を試したとき、私はそれが既にインストールされていると言われました。)その後、winghciを再起動してpongを正常にロードしました。 (明らかにそれはあなたの問題ではありませんが、このシステム管理者レベルで作業する必要はありません)。私はあなたが示唆したいくつかのことを試してみると、混乱した答えを得ました。私はまだそれを実行しようとしていない。あなたの時間をもう一度ありがとう。 – RussAbbott

関連する問題