2013-04-14 40 views
6

Cuối cùng, tôi đã cài đặt Haskell SDL bindings trên Windows. Sử dụng công cụ này:Haskell SDL: Không thể tìm thấy mingw32.dll

> $env:Path += ";C:\SDL;C:\SDL\bin;C:\SDL\include;C:\SDL\lib" 
> cabal install SDL --extra-include-dirs="C:\SDL\include" --extra-lib-dirs="C:\SDL\lib" 

Tác phẩm này, miễn là Cygwin được cài đặt cho tập lệnh định cấu hình. Tuy nhiên, tôi đã viết một kịch bản thử nghiệm nhỏ:

import Graphics.UI.SDL as SDL 
import Control.Monad (void) 
import Control.Exception (bracket_) 

main = bracket_ (SDL.init [InitEverything]) quit $ do 
    screen <- setVideoMode 800 600 0 [] 
    SDL.flip screen 
    void $ waitEvent 

Cố gắng này ngay bây giờ mang lại cho tôi thông báo lỗi này:

*Main> :main 
Loading package SDL-0.6.4 ... <interactive>: mingw32: Cannot find specified module. 
can't load .so/.DLL for: mingw32.dll (addDLL: could not load DLL) 

Bây giờ tôi đang tìm kiếm mingw32.dll đó nhưng tôi không thể tìm thấy nó trên máy tính của tôi, mặc dù tôi đã cài đặt MinGW32. Có ai có kinh nghiệm ở đây không?

Sử dụng SDL-0.6.4, GHC 7.4.2 từ Haskell Platform 2012.4.0.0. Windows 7 64-Bit.

ADDITION: Tôi hiện cũng đã thử cách này theo cách A Haskell Adventure In Windows đề xuất và có kết quả rất giống nhau.

Trả lời

1

Nó có thể là sự cố 64 so với 32 bit. Cố gắng sao chép đó .dll để:

  • phiên bản 64-bit của Windows: sao chép vào c: \ windows \ SysWOW64
  • 32-bit phiên bản của Windows: sao chép vào c: \ windows \ system32

That helped me with FTGL - see here

+0

Nhưng không có 'mingw32.dll' ở bất cứ đâu trên hệ thống của tôi. Googling mà không mang lại kết quả là tốt. Tôi không nghĩ rằng một 'mingw32.dll' tồn tại ở tất cả. – Lanbo

+0

@LambdaDusk, bạn đã cài đặt mingw, msys hoặc msysgit chưa? Nếu có, họ có thể can thiệp vào thiết lập xây dựng Cygwin của bạn – sinelaw

+0

@LambdaDusk thực sự bây giờ tôi chỉ nhận thấy rằng các hướng dẫn bạn đang sử dụng dựa trên một xây dựng mww của lib libs sdl. Bạn nên loại bỏ Cygwin và cài đặt mingw thay vào đó, hoặc loại bỏ các sdl mingw dựa trên và cài đặt một Cygwin một, hoặc xây dựng nó cho mình (http://www.libsdl.org/extras/win32/cygwin/README.txt) – sinelaw

1

Tôi đã sử dụng MSYS/MinGW để xây dựng và tôi gặp vấn đề tương tự. Sau khi fiddling xung quanh tôi thấy rằng cờ -lmingw32 (trong tập tin sdl-config) đang được sử dụng, và điều này dường như ngụ ý mingw32.dll. Tôi đơn giản loại bỏ điều này bị gắn cờ, và tất cả mọi thứ đã làm việc.