【问题标题】:Haskell compiling DLL "undefined reference"Haskell编译DLL“未定义引用”
【发布时间】: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# 中调用托管包装器。

【问题讨论】:

  • 我也一直在尝试这样做,但没有运气。成功了吗?

标签: haskell linker


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-02-07
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多