【问题标题】:Why does GHC 7.8 need dynamic libraries?为什么 GHC 7.8 需要动态库?
【发布时间】:2014-05-05 14:02:27
【问题描述】:

GHC 7.8 现在默认动态链接。 The FAQ 表示这需要 GHC 也加载 动态对象 而不是 静态对象。现在我的问题是:为什么会这样?为什么 GHC 不能继续加载静态对象,为什么 GHC 本身的链接方式很重要?

【问题讨论】:

    标签: haskell linker shared-libraries ghc static-linking


    【解决方案1】:

    根据Release notes for version 7.8.1

    在 Linux、FreeBSD 和 Mac OS X 上,GHCi 现在默认使用系统动态链接器,而不是其内置的(静态)对象链接器。这更加健壮的跨平台,并且修复了许多长期存在的错误(例如:构造函数和析构函数、弱符号等正常工作,并且修复了 RTS 中的几个边缘情况。)

    【讨论】:

    • 这可能是另一个原因,但该页面还说:“当您在 GHCi 中使用库时,GHCi 必须加载 动态对象”。我想知道为什么这是动态链接的 GHC。
    • @bennofs 我猜这是因为 GHCi 现在使用系统动态链接器来动态链接您的程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多