cabal-version: 3.4
name: SudokuSolver SudokuSolver
version: 0.1.0.0。
build-type: Simple Simple
library sud
build-depends。
基礎
, 文本
hs-source-dirs: lib
暴露的模塊。Sud.Rdg。
default-language: Haskell2010 default-language.
可執行 suSol
default-language: Haskell2010
hs-source-dirs: app
main-is: Main.hs
build-depends:
基礎
, optparse-applicative
, 檔案路徑
, 文本
當我運行 "cabal build sud "時,一切都很好。 然而,當我運行 "cabal build suSol "時,我得到了以下錯誤:
無法加載模塊'Sud.Rdg'。
~ │ 它是隱藏包'SudokuSolver-0.1.0.0'的成員。
~ │ 也許你需要把'SudokuSolver'加入到你的.cabal檔案的build-depends中。
~ │ 使用 -v (或 ghci 中的 :set -v) 來查看搜索到的檔案串列。
這就是我有點不知所措的地方,cabal能不能把這個專案本身添加為build-depends?如果我這樣做,我就會得到:
錯誤。依賴于不可構建的軟體包 SudokuSolver
。 在'executable suSol'節中 │ 在原地的包中 'SudokuSolver-0.1.0.0'/p>
這對我來說是有道理的,顯然你不能把自己加入到構建依賴項中。
但是我在這里錯過了什么呢?
編輯:
如果我把 sud 添加到構建依賴項中,然后 "cabal build suSol",我會得到:
決議依賴關系...
cabal。Could not resolve dependencies: [__0] 嘗試。
SudokuSolver-0.1.0.0 (用戶目標) [__1] 未知軟體包: sud
(SudokuSolver 的依賴項) [__1] 失敗 (backjumping, 沖突集。
SudokuSolver, sud) 在搜索了依賴樹的其余部分之后
后,這些是我最難實作的目標。
SudokuSolver, sud
當你為一個庫添加名字時,意味著它是你的包的一個私有或內部庫。似乎cabal目前有一個bug,導致那個令人困惑的錯誤資訊,要求你在你的可執行檔案的build-depends中添加SudokuSolver,你可以改為添加SudokuSolver:sud。
然而,更常見的情況是保持庫不命名(或給它一個與包相同的名字),這使得它成為主要的公共庫。那么庫的名字就和包的名字一樣了,所以你真的應該在你的可執行檔案的build-depends中添加SudokuSolver。這是很長一段時間內唯一可能的選擇,內部庫是比較新的。這可能也是為什么仍然有一些類似的問題。
我還注意到,你可以像Willem van Onsem所說的那樣添加sud,但是只有當你使用cabal-version: 3.0或更早的時候。使用cabal-version: 3.4,你必須使用SudokuSolver:sud(package-name:internal-library-name)符號。
編輯:我已經在 cabal GitHub repo 上打開了一個問題。
。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/316972.html
標籤:
