1

Windows以外のOSでHaskellのFFI(Foreign Function Interface)を使用/インターフェースするWindows dllにすることはできますか?たとえば、OSX を使用している場合、.dll を FFI (dll 関数を使用) に接続できますか?

例: Windows で作成およびコンパイルされた my.dll ファイルがあります。Haskell の FFI (Foreign Function Interface) を使用すると、my.dll をロードしてそこから関数を使用するプログラムを Haskell で作成できます。問題は、OSX で Haskell プログラムを作成し、FFI 経由で my.dll を使用できるか、それとも (my.dll を使用したいので) Windows でコンパイルされた Haskell プログラムでなければならないかということです。

4

1 に答える 1

2

外部の動的ライブラリを読み込もうとしている場合は、読み込もうとしているプラ​​ットフォーム用にコンパイルする必要があります。WindowsではDLLファイルになり、Linuxでは.soファイル(「共有オブジェクト」)になり、OSXではそれがどうなるかわかりません...しかし、本質的にマシンコードを含むファイルをロードしたい場合、実行したいターゲットプラットフォーム用にコンパイルする必要があります。

「私が実行しているプラ​​ットフォームに基づいて、どのファイルをロードする必要があるかを Haskell に判断させることができますか?」と尋ねている場合、それは別の質問です... ;-)

于 2013-09-18T20:13:27.160 に答える