gpt4 book ai didi

haskell - stack build 创建输出可执行文件的两个副本

转载 作者:行者123 更新时间:2023-12-03 22:36:34 24 4
gpt4 key购买 nike

我是堆栈的新手,并不是那么精通 cabal。

我已经将一个 cabal 项目转换为堆栈。它似乎 build 良好。到目前为止,我喜欢它。

但是我观察到一些我不明白的东西。当我执行堆栈构建命令时,我看到创建了两个输出可执行文件。两者都在 .stack-work 路径中,一个在 dist 下,另一个在 install 下。它们的尺寸完全不同。 dist 路径中的文件几乎是安装路径中文件大小的两倍。

我唯一能想到的解释是 dist 路径中的可执行文件可能包含(嵌入在自身中)在不同机器上运行此代码所需的所有包依赖项(它是完整且准备好的用于分发到不同的机器),而安装路径中的文件期望它在构建它的同一台机器上运行,并且这些依赖库安装在主应用程序代码外部。

这有意义吗?

还有其他解释吗?

戴夫·史密斯

最佳答案

我还在我的机器上创建了两个相同的可执行文件....这对我来说也是个谜,但我想我知道答案了。

经过一些侦探工作,我发现 ~/.stack-work/install/.... 中的可执行文件可以从 ~/.stack-work/dist/.... 中的可执行文件相同地创建运行 strip .因此我相信 dist/.... 是创建最终简化版本过程中的一个步骤,它存储在 install/.... 中(后来再次复制到 ~/.local/bin/).

关于haskell - stack build 创建输出可执行文件的两个副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com