2012-03-12 12 views
2

私はhaskellを初めて使っていて、私のクラスで私の練習をしようとしています。私は以下を書いて、それを評価しようとしましたが、 。ハスケル:私のプログラムを実行しているときにGLUt32エラーメッセージ

Loading package GLUT-2.3.0.0 ... can't load .so/.DLL for: glut32 (addDLL: could not load DLL) 

(WinGHCiで)私は私のsystem32フォルダにglut32.dllを追加し、それを再度実行してみたが、同じエラーがまだポップアップ表示されます。誰かが何が起こっているか教えてもらえますか?

はHERESに私のコード:

import Graphics.Gloss

main = display (InWindow "Exercise One" (200, 200) (10, 10)) black picture

picture = color red (rectangleWire 198 198)

私はghc -o test test.hs./testを使用してPowerShellを通過コンパイルし、それがエラーを吐く:one.exe: user error (unknown GLUT entry glutInit)

任意の助けいただければ幸いです!

+0

システムと環境変数を適切に設定しましたか? –

+0

@ SerdarDogruyol私の講師とハッカーのウェブサイトによると、私はかなりhaskellプラットフォームをインストールし、powershellで 'cabal update'と' cabal install gloss'を実行しました。 – SNpn

+0

ghciはコンパイラとは異なるローダーを使用しています。すべてのプラットフォームで.so/dllをghciにロードすることも可能です。コードをコンパイルして実行ファイルを実行できますか? –

答えて

6

glut32.dllファイルはsystem32ディレクトリに置いてください。しかし、64ビット版のWindowsの場合は、Windows \ SysWOW64ディレクトリに、他の32ビットのバイナリが必要です。

歴史的な理由から、system32にはネイティブOSバイナリが格納されており、実際には32ビットWindows版では32ビットのみです。名前にかかわらず、system32のバイナリは64ビットWindowsでは64ビット、SysWOW64では32ビットファイルです。

GHCには現在Win64ポートがないため、32ビットのglut32.dllが必要です。

また、作成しているexeと同じディレクトリにglut32.dllを置くこともできます。

Windows用のglutの複数のバージョンがあります。私はfreeglutの(32ビット)バイナリビルドの1つをお勧めします。

+0

その種の問題を修正しました...私は別のエラーを出すようです(SysWOW64にファイルを置いた後)、 'GLUT:test.exeの警告:GLエラー:無効な操作'、コードを変更しました。 – SNpn

+0

心配しないでください、私はそれを考え出しました、すべての助けをありがとう! – SNpn

+0

それを聞いてうれしい! –

関連する問題