【问题标题】:Is it possible to produce stand alone haskell executable是否可以生成独立的 haskell 可执行文件
【发布时间】:2013-04-22 14:43:04
【问题描述】:

假设架构相似,是否有任何方法可以生成独立的 haskell 可执行文件以在不同的 linux 机器上运行?

对不起,我应该更清楚。其他机器上可能没有安装 ghc - 有点像 python 的 pyinstaller 是我正在寻找的?

【问题讨论】:

标签: linux haskell executable ghc


【解决方案1】:

在编译 Haskell 项目时,您可以使用标志 -static -optl-pthread -optl-static 来避免动态链接依赖项。这应该可以帮助您在两台没有完全相同库版本的 Linux 机器上运行编译后的可执行文件。

【讨论】:

  • 我从来没有使用过 ghc 和静态链接,所以我很好奇这对你(和商)有多大的效果。例如,在 Fedora 上,您显然需要静态库 (yum install glibc-static),但 RTS 调用 dlopen 仍然存在问题。
【解决方案2】:

是的,这是可能的。就像 gcc 生成的二进制文件一样,假设动态库和平台匹配,您可以在系统之间复制它们。

实际上,这比 GCC 二进制文件略高,因为默认情况下 GHC 将动态链接更多库(例如:libgmp,除非您使用 integer-simple 构建 GHC)。

【讨论】:

    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2011-05-14
    • 2019-09-08
    • 1970-01-01
    • 2018-06-19
    • 2021-10-04
    相关资源
    最近更新 更多