OpenCLRawバインディングをWindows上で使用できる場所に取得しようとしています。私はgithub上でOpenCLRawレポをフォークしたので、必要に応じて変更を加えることができます。私の枝はここにあります: https://github.com/dagit/OpenCLRawOpenCLをGHCでWindowsにリンクできません
私は "FunPtr"ブランチから大部分は取り組んでいます。
私はAMDのOpenCL SDKをインストールし、Visual Studio固有の.libファイルをgccが処理できるファイル(.aファイル)に変換しましたが、ghcはリンクできないようです。私は、OpenCL APIで使用するすべてのものについて未定義のシンボルを取得します。
"簡単な" Cプログラムをビルドし、生成した.aファイルとmingwのgcc(Haskellのインストールではない)を使ってリンクすることができました。私はHaskellプラットフォームの最新のWindowsリリースを使用しています。 Iは、例えば、スクリプト(例えば、gendef及びDLLTOOL)のコマンドを使用 http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=138890
:
これらは私が.Aファイルを生成するために使用されるステップです。 GHCはすべてが32ビットであることを知っているので、私はできる限り32ビットすべてを使用しようとしました。だから、32ビットと64ビットの問題ではないと思います。
私はmingwから入手したgccではなく、gccの下でgccを呼び出す方法が異なるかどうかは知りませんか?
私はghcコマンドライン(私はコマンドラインを検査するためにcabal-dev --verbose = 3を使用しました)と一緒に遊んできましたが、私はまだそれを動作状態にマッサージすることができません。
助けていただけたら幸いです!
gendefの代わりにpexportを使用すると、関数名の後に@sがすべて削除されます。これにより、GHCはライブラリファイルをリンクに使用できますが、a)gccはそのファイルとのリンクに失敗します。b)clGetPlatfromIDsを呼び出すと、簡単なプログラムのsegfaultsになります。 –
私はWindowsでテストしませんが、OpenCLRawにはいくつかの種類のバグがあります。私はopenclバインドを自分のために使っています。https://github.com/zhensydow/opencl – Zhen
@Zhen、あなたには何か計画がありますか?あなたの拘束力をHackageに置く?私がhaskellのものを探している最初の場所はhackageで、次にgoogleの検索が続きます。あなたの図書館はJeff'sの改良版のようです。それはハックとGoogleに表示されませんが残念です。 –