【发布时间】:2012-05-17 18:25:54
【问题描述】:
我在这里遵循了使 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>:未定义对“textzm0zi11zi1zi5_DataziText_zdf0rdText_closure”的引用
SanitizeXSS.o 是我编译 Haskell 模块时自动生成的目标文件。
我已经尝试过其他帖子中提到的-no-hs-main 技巧。
上下文:我正在尝试使用 FFI 导出一个 Haskell 函数,然后我希望在 C# 中调用托管包装器。
【问题讨论】:
-
我也一直在尝试这样做,但没有运气。成功了吗?