gpt4 book ai didi

haskell - 为什么 "cabal sdist"不包含所有 "files needed to build"?

转载 作者:行者123 更新时间:2023-12-02 11:08:22 27 4
gpt4 key购买 nike

根据wiki条目,

It packages up the files needed to build the project

我有一个简单的仅可执行文件.cabal项目,它基本上包含

Executable myprog
hs-source-dirs: src
main-is: MyMain.hs

并且由 src/ 下面超出 src/MyMain.hs 的一些附加 .hs 文件组成。例如,src/Utils.hs 和其他一些。

cabal build 构建 myprog 没有问题,并编译 src/ 下面所需的附加 .hs 文件,但 cabal sdist 没有,因此创建了一个功能失调的源代码 tarball。我究竟做错了什么?我如何告诉 cabal 包含 hs-source-dirs 下面的所有源文件?

顺便说一句,对于 GNU Autotools,有一个 make distcheck 目标,它首先构建一个源代码压缩包,然后尝试通过新生成的源代码压缩包构建项目,从而确保一切正常。 cabal 是否有类似的东西,以确保我的源代码 tarball 是正确的?

最佳答案

您应该在 Executable 节内的 .cabal 文件中列出其他 Haskell 文件。

  other-modules: Utils AFewOthers

该发行版仅包含 .cabal 文件中列出的源文件。 Cabal 没有其他方法来检测包中包含哪些源文件。您仍然可以构建,因为 cabal build 调用 ghc --make,并且 ghc 将查找并编译它需要的所有源文件。

关于haskell - 为什么 "cabal sdist"不包含所有 "files needed to build"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4639526/

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