cabal-version: 3.4
name: SudokuSolver
version: 0.1.0.0
build-type: Simple
library sud
build-depends:
base
, text
hs-source-dirs: lib
exposed-modules: Sud.Rdg
default-language: Haskell2010
executable suSol
default-language: Haskell2010
hs-source-dirs: app
main-is: Main.hs
build-depends:
base
, optparse-applicative
, filepath
, text当我运行“阴谋组织”的时候,一切都没问题。然而,当我运行“阴谋构建suSol”时,我会得到以下错误:
无法加载模块‘Sud.Rdg’~│-它是隐藏包‘SudokuSolver-0.1.0.0’的成员。~SudokuSolver可能需要在.cabal文件中添加“│”。~ -v (或ghci中的
:set -v)用于查看所搜索文件的列表。
这就是我有点不知所措的地方,我把这个项目本身作为构建依赖来添加?如果我那样做,我会得到:
错误:依赖不可构建的包SudokuSolver 在内部包‘SudokuSolver-0.1.0’中的‘可执行suSol’节中的│
这对我来说是有意义的,显然你不能把自己添加到构建依赖项中。
但我在这里错过了什么?
编辑:
如果我将sud添加到依赖于构建的和“阴谋构建suSol”中,就会得到:
解决依赖..。 阴谋:无法解决依赖:__尝试: SudokuSolver-0.1.0.0 (用户目标) __1未知包: sud (依赖SudokuSolver) __1失败(回跳,冲突集: SudokuSolver,sud),在彻底搜索其余的依赖树之后,这些都是我最难以实现的目标: SudokuSolver,sud
发布于 2021-08-22 09:55:34
当您向库中添加名称时,这意味着它是包的私有或内部库。看来,阴谋集团目前有一个错误,它会导致令人困惑的错误消息,要求您将SudokuSolver添加到您的构建中--取决于您的可执行文件,您可以添加SudokuSolver:sud。
但是,更常见的情况是,将库保持未命名(或给它与包相同的名称),这使它成为主要的公共库。然后,库的名称与包的名称相同,因此应该将SudokuSolver添加到可执行文件的构建依赖项中。这是很长一段时间以来唯一可能的选择,内部库是相对较新的。这可能也是为什么仍然存在一些类似的问题。
我还注意到,您可以像Willem van Onsem所说的那样添加sud,但必须使用cabal-version: 3.0或更早的版本。对于cabal-version: 3.4,您必须使用SudokuSolver:sud (包名:内部库名)表示法。
编辑:我已经打开了关于阴谋GitHub回购的一个问题。
https://stackoverflow.com/questions/68880126
复制相似问题