Tôi đang cố gắng để có được các ràng buộc OpenCLRaw đến một điểm mà tôi có thể sử dụng chúng trên các cửa sổ. Tôi đã chia rẽ repo OpenCLRaw trên github để tôi có thể sửa đổi nếu cần. Chi nhánh của tôi ở đây: https://github.com/dagit/OpenCLRawKhông thể liên kết OpenCL trên Windows với GHC
Tôi chủ yếu làm việc từ chi nhánh "FunPtr" của mình. Vấn đề tôi gặp phải là: Tôi đã cài đặt SDK OpenCL của AMD, chuyển đổi tệp .lib cụ thể của Visual Studio thành tệp mà gcc có thể xử lý (tệp .a), nhưng ghc dường như không liên kết với nó . Tôi nhận được các ký hiệu không xác định cho mọi thứ tôi sử dụng trong API OpenCL.
Tôi có thể tạo chương trình C "nhỏ" và liên kết nó bằng tệp .a mà tôi đã tạo và gcc từ mingw (không phải từ cài đặt Haskell). Tôi đang sử dụng phiên bản Windows mới nhất của nền tảng Haskell.
Đây là những bước tôi đã sử dụng để tạo ra các tập tin .a: http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=138890
tôi đã sử dụng các lệnh trong ví dụ kịch bản (ví dụ, gendef và dlltool). Tôi đã cố gắng sử dụng 32 bit mọi thứ càng nhiều càng tốt, như tôi biết rằng GHC sẽ muốn tất cả mọi thứ là 32bit, vì vậy tôi không nghĩ rằng đó là một vấn đề 32bit so với 64bit.
Có ai biết nếu có điều gì đó khác biệt về cách gọi gcc dưới ghc thay vì gcc mà tôi nhận được từ mingw không?
Tôi cũng đã chơi với dòng lệnh ghc (Tôi đã sử dụng cabal-dev --verbose = 3 để kiểm tra dòng lệnh) và tôi vẫn không thể làm mát nó thành trạng thái hoạt động.
Mọi trợ giúp sẽ được đánh giá cao!
Nếu tôi sử dụng pexports thay vì gendef thì nó sẽ loại bỏ tất cả các @ sau tên hàm. Điều này cho phép GHC sử dụng tệp thư viện để liên kết nhưng bây giờ a) gcc không liên kết với tệp đó và b) segfaults chương trình tầm thường của tôi khi nó gọi clGetPlatfromIDs. –
Tôi không thử nghiệm nó trên Windows, nhưng tôi nhận thấy rằng OpenCLRaw có một số lỗi với loại, tôi madfe bản thân mình một ràng buộc opencl làm việc cho tôi, https://github.com/zhensydow/opencl – Zhen
@Zhen, bạn có kế hoạch nào không để đặt sự ràng buộc của bạn vào Hackage?Nơi đầu tiên tôi tìm kiếm nội dung haskell là hackage, tiếp theo là tìm kiếm google. Thư viện của bạn trông giống như một cải tiến so với Jeff's. Đó là một sự xấu hổ nó không hiển thị trên hackage và google. –