Haskell: сообщение об ошибке GLUt32 при запуске моей программы - PullRequest
2 голосов
/ 13 марта 2012

Я новичок в haskell, и я пытаюсь выполнить упражнение для своего класса, я написал следующее и попытался оценить его, но он выдает ошибку. (В WinGHCi)

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)) черная картинка

картинка = красный цвет (прямоугольник, провод 198 198)

когда я компилирую через powershell, используя ghc -o test test.hs и ./test, и он выдает ошибку: one.exe: user error (unknown GLUT entry glutInit)

Буду признателен за любую помощь!

1 Ответ

6 голосов
/ 13 марта 2012

Вы помещаете файл glut32.dll в каталог system32, но если вы используете 64-разрядную версию Windows, он должен находиться в каталоге Windows \ SysWOW64 вместе с другими 32-разрядными двоичными файлами.

По историческим причинам system32 содержит собственные двоичные файлы ОС и на самом деле являются 32-разрядными только в 32-разрядных версиях Windows. Несмотря на название, двоичные файлы в system32 являются 64-битными в 64-битной Windows, а 32-битные файлы идут в SysWOW64.

В настоящее время GHC не имеет порта Win64, поэтому ему необходим 32-разрядный файл glut32.dll.

Вы также можете попробовать поместить glut32.dll в тот же каталог, что и исполняемый файл.

Существует более одной версии перенасыщения для Windows; Я бы порекомендовал одну из (32-битных) двоичных сборок freeglut .

...