Haskell编译DLL“未定义引用”

时间:2012-05-17 18:25:54

标签: haskell linker

我正在按照指南在这里使用其他语言调用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#中的Managed Wrapper中调用它。

1 个答案:

答案 0 :(得分:1)

尝试将--make传递给ghc,以便解析对缺少的Haskell库的引用。或者,列出您明确链接的Haskell包。