我試圖讓OpenCLRaw綁定到一個點,我可以在Windows上使用它們。我已經在github上分配了OpenCLRaw repo,所以我可以根據需要進行修改。我的分支在這裏: https://github.com/dagit/OpenCLRaw無法鏈接在Windows上的OpenCL與GHC
我一直主要在我的「FunPtr」分支上工作。
我遇到的問題是這樣的:我安裝了AMD的OpenCL SDK,將他們的Visual Studio特定的.lib文件轉換爲gcc可以處理的文件(.a文件),但ghc似乎無法鏈接它。我得到了我在OpenCL API中使用的所有未定義符號。
我能夠構建一個「微不足道」的C程序,並使用我生成的.a文件和來自mingw的gcc(而不是從Haskell安裝)鏈接它。我正在使用Haskell平臺的最新Windows發行版。
這些是我用於產生某文件中的步驟: http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=138890
我用在示例腳本(例如,gendef和dlltool)的命令。我試圖儘可能使用32位的一切,因爲我知道GHC會希望一切都是32位的,所以我不認爲它是32位和64位的問題。
有誰知道在ghc下調用gcc而不是從mingw獲得的gcc有什麼不同嗎?
我也玩過ghc命令行(我用cabal-dev --verbose = 3來檢查命令行),我仍然無法將它按摩到工作狀態。
任何幫助,將不勝感激!
如果我使用pexports而不是gendef,那麼它將刪除函數名稱後面的所有@。這允許GHC使用庫文件進行鏈接,但現在a)gcc無法與該文件鏈接,以及b)當我調用clGetPlatfromIDs時,我的小程序段錯誤。 –
我不在Windows上測試它,但我注意到OpenCLRaw有幾個類型的錯誤,我瘋狂自己一個opencl綁定,適用於我,https://github.com/zhensydow/opencl – Zhen
@ Zhen,你有任何計劃把你的綁定在Hackage上?我尋找的第一個地方是hackage,接着是谷歌搜索。你的圖書館看起來像是對Jeff的改進。這是一種遺憾,它不會顯示在hackage和谷歌上。 –