2

ここで、他の言語から呼び出されるように DLL を作成するためのガイドに従っていました。

http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/win32-dl​​ls.html

最初に Haskell モジュールとヘルパー C ファイルを次のようにコンパイルします。

ghc -c SanitizeXSS.hs

ghc -c StartEnd.c

しかし、次のようにすべてをリンクしようとすると:

ghc -shared -o SanitizeXSS.dll SanitizeXSS IdsSanitizeXSS_stub.o StartEnd.o

次のようなエラー メッセージがたくさん表示されます。

SanitizeXSS.o:fake<.data+0760>: 「textzm0zi11zi1zi5_DataziText_zdf0rdText_closure」への未定義の参照

SanitizeXSS.o Haskell モジュールをコンパイルしたときに自動生成されたオブジェクト ファイル。

-no-hs-main他のスレッドで言及されているトリックを試しました。

Context : FFI を使用して Haskell 関数をエクスポートしようとしています。この関数は、C# の Managed Wrapper で呼び出されることを願っています。

4

1 に答える 1

1

--make不足している Haskell ライブラリへの参照を解決するために、ghc に渡してみてください。または、明示的にリンクしている Haskell パッケージをリストします。

于 2012-05-17T22:31:58.063 に答える