使用 Stack 在 Haskell 项目中使用 gtk2hs-buildtool 库时出错
Getting error while using gtk2hs-buildtool library in Haskell project using Stack
我正在尝试将 gtk2hs-buildtool
的依赖项添加到我的 Haskell 项目,但在构建堆栈时出现以下错误。
In the dependencies for TicTacToe-0.1.0.0:
gtk2hs-buildtools needed, but the stack configuration has no specified version (latest matching
version is 0.13.5.4)
needed since TicTacToe is a build target.
TicTacToe.cabal 文件:
library
exposed-modules:
TicTacToeEngine
other-modules:
Paths_TicTacToe
hs-source-dirs:
src
build-depends:
base >=4.7 && <5,
gtk2hs-buildtools
default-language: Haskell2010
如果您使用的是 stack
工具,则不应触摸 <packagename>.cabal
文件。 stack
负责从 package.yaml
生成它。尽管修改 <packagename>.cabal
是一种常见的做法,但如果您不这样做,开发工作流程会更容易。
您感兴趣的文件(以及 stack
工具使用的文件)是 stack.yaml
和 package.yaml
。
在 stack.yaml
中,您应该会看到一个名为 resolver: lts-XX.XX
的条目。这意味着您的依赖项版本得到管理,以便它们与给定的 lts
(a.k.a. snapshot
) 中的那些相匹配。您可以转到 https://www.stackage.org/,单击您的 lts
版本并搜索 gtk2hs-buildtools
包以获得适合您的项目的版本(例如:lts-12.26
使用 gtk2hs-buildtools-0.13.4.0
).在您的 package.yaml
中,在 dependencies
部分写入条目条目 - gtk2hs-buildtools
lts-13.11
及以上gtk2hs-buildtools
在stackage中不可用,因此您需要将其添加为extra-dep。在 stack.yaml
部分的 extra-dep
部分添加以下条目 gtk2hs-buildtools-0.13.4.0
(或您要使用的版本号)。然后添加 package.yaml
和条目 gtk2hs-buildtools
。有必要在两个文件中添加条目。请参阅堆栈文档或了解原因。
为了确保您可以构建项目,您的文件应如下所示:
如果使用高于或等于 13.11
的解析器
stack.yaml
resolver: lts-13.11
extra-deps:
- gtk2hs-buildtools-0.13.4.0
package.yaml
dependencies:
- base
- gtk2hs-buildtools
如果使用低于 13.11
的解析器
stack.yaml
resolver: lts-12.26
extra-deps:
package.yaml
dependencies:
- base
- gtk2hs-buildtools
我正在尝试将 gtk2hs-buildtool
的依赖项添加到我的 Haskell 项目,但在构建堆栈时出现以下错误。
In the dependencies for TicTacToe-0.1.0.0:
gtk2hs-buildtools needed, but the stack configuration has no specified version (latest matching
version is 0.13.5.4)
needed since TicTacToe is a build target.
TicTacToe.cabal 文件:
library
exposed-modules:
TicTacToeEngine
other-modules:
Paths_TicTacToe
hs-source-dirs:
src
build-depends:
base >=4.7 && <5,
gtk2hs-buildtools
default-language: Haskell2010
如果您使用的是 stack
工具,则不应触摸 <packagename>.cabal
文件。 stack
负责从 package.yaml
生成它。尽管修改 <packagename>.cabal
是一种常见的做法,但如果您不这样做,开发工作流程会更容易。
您感兴趣的文件(以及 stack
工具使用的文件)是 stack.yaml
和 package.yaml
。
在 stack.yaml
中,您应该会看到一个名为 resolver: lts-XX.XX
的条目。这意味着您的依赖项版本得到管理,以便它们与给定的 lts
(a.k.a. snapshot
) 中的那些相匹配。您可以转到 https://www.stackage.org/,单击您的 lts
版本并搜索 gtk2hs-buildtools
包以获得适合您的项目的版本(例如:lts-12.26
使用 gtk2hs-buildtools-0.13.4.0
).在您的 package.yaml
中,在 dependencies
部分写入条目条目 - gtk2hs-buildtools
lts-13.11
及以上gtk2hs-buildtools
在stackage中不可用,因此您需要将其添加为extra-dep。在 stack.yaml
部分的 extra-dep
部分添加以下条目 gtk2hs-buildtools-0.13.4.0
(或您要使用的版本号)。然后添加 package.yaml
和条目 gtk2hs-buildtools
。有必要在两个文件中添加条目。请参阅堆栈文档或了解原因。
为了确保您可以构建项目,您的文件应如下所示:
如果使用高于或等于 13.11
stack.yaml
resolver: lts-13.11
extra-deps:
- gtk2hs-buildtools-0.13.4.0
package.yaml
dependencies:
- base
- gtk2hs-buildtools
如果使用低于 13.11
stack.yaml
resolver: lts-12.26
extra-deps:
package.yaml
dependencies:
- base
- gtk2hs-buildtools