作为uni任务,我需要用某些特性来增强一个给定的Haskell框架。因为这个框架使用的是Gloss库,所以我使用cabal install gloss安装了Gloss。这没有给我任何错误,但是,当我尝试配置框架的设置文件(runghc Setup configure)时,我得到了以下错误消息:
Configuring lambda-wars-0.1.0.0...
Setup: Encountered missing dependencies:
gloss >=1.8 && <1.10, random ==1.0.*, time >=1.4 && <1.6尝试安装这些依赖项(例如cabal install 'gloss >=1.8 && <1.10)时,会显示其他错误消息:
Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: gloss (user goal)
rejecting: gloss-1.10.2.3/installed-3mE..., gloss-1.10.2.3, gloss-1.10.2.2,
gloss-1.10.2.1, gloss-1.10.1.1 (constraint from user target requires >=1.8 &&
<1.10)
trying: gloss-1.9.4.1
next goal: base (dependency of gloss-1.9.4.1)
rejecting: base-4.9.0.0/installed-4.9... (conflict: gloss => base==4.8.*)
rejecting: base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0,
base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0,
base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0,
base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0,
base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable
package requires installed instance)
Dependency tree exhaustively searched.经过一些研究,我认为这意味着我的GHC是一个不同的版本,而不是项目所需的版本。然而,我似乎不知道如何真正解决这个问题!
我在Mac版本10.10.5上工作。
发布于 2016-10-21 20:58:33
我会先试着把它安装在一个Cabal沙箱中:
$ cabal sandbox init
$ cabal install LambdaWars但是这里看起来你有一个与之不兼容的base包版本。你有没有尝试过在base-4.8上使用旧的GHC7.8编译器
发布于 2016-10-22 00:29:49
stack.yaml
解析器: lts-7.4 #用于ghc 8.0.1 #解析器: lts-6.22 #用于ghc 7.10.3包:-‘’extra-deps:-AC-Angle 1.0- AC-Vector-Fancy-2.4.0标志:{} extra-package-dbs:[]
此外,您还需要在src/Engines.hs中做一点修改
在文件顶部添加{-# LANGUAGE CPP -#},删除第26行中的import Data.Label.Pure。并将另一个import Data.Label.Pure更改为以下内容
#if MIN_VERSION_fclabels(2,0,0)
import Data.Label
#else
import Data.Label.Pure
#endif我无法测试它,因为glut不起作用--但是它可以用ghc-8.0.1编译,我会在git repo上提交一个pull request
要构建lambdawars,您需要运行
> stack build
> stack exec -- LambdaWars注意:在linux上,你需要像sudo apt-get install freeglut3-dev这样的东西才能运行它。
https://stackoverflow.com/questions/40176722
复制相似问题