2012-03-12 64 views
2

當我是新來的Haskell,我試圖做我的鍛鍊我的課,我寫了下面,並試圖評估主體,但它吐出一個錯誤。 (在WinGHCi)哈斯克爾:GLUt32錯誤信息運行我的程序

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

我試着加入要將glut32.dll到我的System32文件夾中,然後再次運行,但同樣的錯誤仍然彈出。有人能告訴我發生了什麼事嗎?

繼承人我的代碼:

import Graphics.Gloss

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

picture = color red (rectangleWire 198 198)

,當我通過PowerShell的編譯使用ghc -o test test.hs./test和它吐出一個錯誤:one.exe: user error (unknown GLUT entry glutInit)

任何幫助,將不勝感激!

+0

是否將系統配置和環境變量是否正確? – 2012-03-13 00:00:51

+0

@SerdarDogruyol根據我的講師和hackage網站我有,我幾乎安裝了haskell平臺,並通過powershell運行'cabal update'和'cabal install gloss' – SNpn 2012-03-13 00:20:11

+0

ghci使用與編譯器不同的裝載器,我不確定它是甚至可以在所有平臺上將.so/dll加載到ghci中。你能編譯代碼並運行可執行文件嗎? – 2012-03-13 00:24:45

回答

6

您將glut32.dll文件放入system32目錄中,但是如果您位於64位版本的Windows上,則需要將其放在Windows \ SysWOW64目錄中,以及其他32位二進制文​​件中。

由於歷史原因,SYSTEM32持有本機操作系統的二進制文件,並且僅實際上32位在32位Windows版本。儘管名稱不同,但system32中的二進制文件在64位Windows上是64位,而在SysWOW64中是32位文件。

GHC沒有在這個時候Win64的端口,因此它需要32位要將glut32.dll。

您也可以嘗試把要將glut32.dll在同一目錄下,你正在構建的exe文件。

有過剩的多個版本的Windows;我建議使用freeglut的(32位)二進制版本之一。

+0

這種問題解決了這個問題...現在我似乎得到另一個錯誤(在將文件放入SysWOW64後),GLUT:test.exe中的警告:GL錯誤:無效操作,我改變了我的代碼,請閱讀以上 – SNpn 2012-03-13 00:57:07

+0

別擔心,我想通了,感謝所有的幫助! – SNpn 2012-03-13 04:55:27

+0

很高興聽到它! – 2012-03-13 15:22:23