gpt4 book ai didi

haskell - 在 cabal 包中,为什么我应该有几乎相同的 `other-modules` 字段

转载 作者:行者123 更新时间:2023-12-04 15:38:23 27 4
gpt4 key购买 nike

在我的 cabal 中,我有一个 library 和一些 executable 字段。我可以理解为什么 cabal 想要了解 .cabal list 中的所有各种文件,甚至是那些不是 exposed-modules 的文件。我的可执行文件只使用我库的 exposed-modules 中的模块。为什么 cabal 会提示缺少 other-modules

version:             0.0.0.1
name: my-pkg
synopsis: A package
description: Please see README.md
homepage: https://homepage.com
license: BSD3
license-file: LICENSE
author: Me
maintainer: example@example.com
copyright: MIT
category:
build-type: Simple
cabal-version: >=1.10

library
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall -g -Wno-simplifiable-class-constraints -O2
exposed-modules: MyLib.Exposed.ImportedByExec
other-modules: MyLib.NotExposed.ExecShouldntCare

executable tool
hs-source-dirs: tools/Tool
default-language: Haskell2010
ghc-options: -Wall -g -Wsimplifiable-class-constraints
main-is: Main.hs
build-depends: base >= 4.7 && < 5
, my-pkg >= 0.1.0.1
other-modules: <why should anything be here to avoid a warning??>

编辑:也许这个问题等同于“为什么在我 stack build 或者甚至 堆栈安装?"

最佳答案

在不知道 tools/Tools 目录的全部内容的情况下,我们只能推测您出现该错误的原因,但我的猜测是该目录中还有其他 haskell 文件。

other-modules 表示在您的项目中使用但未公开的文件/模块。它们是私有(private)文件/模块。来自 cabal 页面的详细信息:cabal - quickstart - 3.1.3. Modules included in the package .

还有一个工具叫hpack它自动从 hpack yaml 文件创建一个 cabal 文件,它可以自动填充 other-modules给你的领域。您也可以通过 stack 使用它.

关于haskell - 在 cabal 包中,为什么我应该有几乎相同的 `other-modules` 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58982179/

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