【问题标题】:Run haskell gloss GUI using cabal使用 cabal 运行 haskell 光泽 GUI
【发布时间】:2016-05-15 20:41:32
【问题描述】:

我是haskell 新手,我想学习如何使用haskell 平台创建GUI。我找到了这个井字游戏示例,但我似乎无法弄清楚如何运行它。

https://github.com/DevJac/gloss-tic-tac-toe

我运行了 Setup.hs,它已编译但没有任何反应。尝试 cabal 运行,这是输出:

从未配置过软件包。使用默认标志进行配置。如果这 失败,请手动运行配置。 解决依赖关系... 配置gloss-tic-tac-toe-0.1.0.0... cabal:至少缺少以下依赖项: 基数 ==4.7.*,光泽度 >=1.9.2.1 &&

有什么想法吗?

【问题讨论】:

  • 我是那个井字游戏的作者。我已对其进行了更新,因此您可以使用堆栈构建它。

标签: user-interface haskell cabal gloss


【解决方案1】:

更新:

这是我为编译它所做的:

  1. 首次运行cabal install gloss-examples

这将需要一段时间,因为它会安装很多依赖项。 tic-tac-toe 程序也需要这些依赖项。

  1. 然后这样做:

    git 克隆https://github.com/DevJac/gloss-tic-tac-toe cd Gloss-tic-tac-toe

并将 .cabal 文件中的 build-depends 节更改为:

  build-depends:       base       >= 4.7,
                       gloss      >= 1.9.2.1,
                       containers >= 0.5.5.1

基本上只是删除所有上限。

  1. 运行cabal build

  2. 如果构建成功,运行可执行文件:

    ./dist/build/gloss-tic-tac-toe/gloss-tic-tac-toe
    

【讨论】:

  • 这将返回与 cabal run 包从未配置过的相同的输出。使用默认标志进行配置。如果失败,请手动运行配置。解决依赖关系...配置gloss-tic-tac-toe-0.1.0.0... cabal:至少缺少以下依赖项:base ==4.7.*,gloss >=1.9.2.1 &&
  • 你的 Haskell 平台版本是什么?如果无法满足base,通常意味着您的 Haskell 平台版本与 .cabal 文件中规定的限制不兼容。
  • ghc --version The Glorious Glasgow Haskell 编译系统,版本 7.10.3 和 cabal 文件中: build-depends: base >= 4.7 && = 1.9.2.1 && = 0.5.5.1 &&
  • .cabal 中指定的“基本”包版本基本上表示您需要旧版本的 GHC。这可能是任意的,可以安全地更改为 base < 5 然后构建包。
【解决方案2】:

看来你对haskell还是很陌生,所以最好安装stack

那么在git clone https://github.com/DevJac/gloss-tic-tac-toe之后最好对下载的源码做如下修改:

删除您不需要的libsrc 文件夹,将gloss-tic-tac-toe.cabal 文件的构建依赖部分替换为以下内容:

  build-depends:       base       >= 4.8     && < 4.9
               ,       gloss
               ,       containers

并添加新文件stack.yaml

resolver: lts-5.17
packages:
- '.'
extra-deps:
- gloss-1.10.1.1
- gloss-rendering-1.10.1.1
flags: {}
extra-package-dbs: []

这是您需要的完整配置 - 然后运行

$ > stack build
... (might take some time)
$ > stack exec -- gloss-tic-tac-toe

将运行游戏,你可以玩!

【讨论】:

  • stack exec --gloss-tic-tac-toe 从项目外部运行,使用隐式全局项目配置使用解析器:lts-5.17 来自隐式全局项目的配置文件:C:\Users\Rares\ AppData\Roaming\stack\global-project\stack.yaml 在路径上找不到名为gloss-tic-tac-toe 的可执行文件:(我的系统路径变量)
  • 您正在克隆的gloss-tic-tac-toe 文件夹中执行stack exec ..
猜你喜欢
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 2021-04-06
  • 1970-01-01
相关资源
最近更新 更多