gpt4 book ai didi

haskell - 使用 cabal 管理两个相互依赖的库

转载 作者:行者123 更新时间:2023-12-02 01:11:58 25 4
gpt4 key购买 nike

我有以下问题:

我有两个相互依赖的 Haskell 库,并且这两个库都由 cabal 管理。相应的 cabal 文件如下所示:

图书馆 1:

name:           Lib1
version: 0.1
cabal-version: >=1.2
build-type: Simple
author: Matthias

library
hs-source-dirs: src
build-depends:
base >= 4,
Lib2
ghc-options: -Wall
exposed-modules: <...>

图书馆 2:

name:           Lib2
version: 0.1
cabal-version: >=1.2
build-type: Simple
author: Matthias

library
hs-source-dirs: src
build-depends:
base >= 4,
Lib1
ghc-options: -Wall
exposed-modules: <...>

使用 cabal install 安装其中一个库(这里是库 2):

Resolving dependencies...
In order, the following will be installed:
Lib2-0.1 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Configuring Lib2-0.1...
Building Lib2-0.1...
Preprocessing library Lib2-0.1...
Registering Lib2-0.1...
Installing library in
C:\Users\Matthias\AppData\Roaming\cabal\Lib2-0.1\ghc-7.4.2
Registering Lib2-0.1...

但是尝试使用 cabal install 安装另一个库(这里是库 1)会导致依赖性错误:

Resolving dependencies...
cabal.exe: Could not resolve dependencies:
trying: Lib1-0.1 (user goal)
next goal: Lib2 (dependency of Lib1-0.1)
rejecting: Lib2-0.1/installed-aa4... (package is broken)

有什么方法可以处理两个相互依赖的库,这样我就不会出现依赖错误,或者 cabal 根本无法正确处理这种情况?

最佳答案

正如其他人所说,循环依赖永远不会在 Cabal 中起作用。编译具有循环依赖性的模块已经够难的了,但是是一个无望的事业。

有时这可能会非常困难,但唯一真正的解决方案是找到一种方法以某种方式打破循环依赖。

关于haskell - 使用 cabal 管理两个相互依赖的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16464787/

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