我正在按照指南在此处从其他语言调用 DLL:
http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/win32-dlls.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
其他线程中提到的技巧。
上下文:我正在尝试使用 FFI 导出一个 Haskell 函数,然后我希望在 C# 中调用托管包装器。