Tôi gặp sự cố với ghci + cairo trên cửa sổ. Khi tôi cố gắng để tải, ví dụ như thế này "ghci -package cairo" nó không thành công với các lỗi sau:Haskell, GHC, win32, cairo
Loading package random-1.0.0.2 ... linking ... done. Loading package haskell98 ... linking ... done. Loading package syb-0.1.0.2 ... linking ... done. Loading package base-3.0.3.2 ... linking ... done. Loading package mtl-1.1.0.2 ... linking ... done. : C:\Users\alexeys\AppData\Roaming\cabal\cairo-0.12.0\ghc-6.12.3\HScairo-0.12.0.o: unknown symbol `_cairo_surface_destroy' Loading package cairo-0.12.0 ... linking ... : unable to load package `cairo-0.12.0'
Ngay cả các chương trình đơn giản nhất không làm việc trong chế độ tương tác, ví dụ như 'Text.hs' mà đi kèm với gói cairo. Tuy nhiên biên dịch với 'ghc --make' mọi thứ hoạt động như mong đợi, do đó, nó không phải là một vấn đề "thiếu dll" - tất cả mọi thứ được đặt ra.
Tôi đã sử dụng 'filemon' để xem những gì "ghci" tải và trong nhật ký tôi có thể thấy 'libcairo-2.dll' (và thư viện này có '_cairo_surface_destroy' biểu tượng được xác định) được tìm thấy và tải thành công, vì vậy tôi không 't thực sự hiểu - nó muốn gì hơn?
Có thể đó là sự cố 'luồng'? Đã có một chủ đề gần đây của Haskell-cafe về thư viện đồ họa SOE trưng bày hành vi tương tự "Mã từ Trường Biểu thức Treo Haskell" - http://www.haskell.org/pipermail/haskell-cafe/2011-January/088697.html. Tôi xin lỗi tôi không biết độ phân giải. –
Bất kỳ cơ hội nào là libcairo-2.dll ở một vị trí có dấu cách trong tên đường dẫn? Ngoài ra, bạn có thể vui lòng đăng phiên bản ghci nào bạn đang sử dụng (điều này trông giống như lỗi liên kết trong mọi trường hợp) không? –
Có thể là 'stdcall' /' ccall' không khớp. Tên biểu tượng trong tệp DLL có hậu tố như '@ 4' không? –