2017-06-09 27 views
1

我试图用Haskell的堆栈设置一个项目,但使用我有一个-fPIC错误 GitHub issue哈斯克尔堆栈不使用系统GHC

要绕过该子卡的问题,我堆栈提供GHC试图使用提供GHC使用7.10.3版本(堆栈当前使用8.0.2)提供的包管理器

当我试图强制堆栈使用systm ghc它简直忽略了我。 我试图覆盖使用/home/user/.stack/config.yaml和{project} /stack.yaml system-ghc:true选项...但堆栈使用8.0.2版本的设置。

我错过了什么吗?

TL; DR

堆栈忽略系统GHC:true选项

我运行过程中出现沙巴翁16


“哈斯克尔引物” 是项目的名称

stack list-dependencies 

base 4.9.1.0 
ghc-prim 0.5.0.0 
haskell-primer 0.1.0.0 
integer-gmp 1.0.0.1 
rts 1.0 
+0

我认为(不确定)如果依赖关系解析器发现它适合,那么堆栈将只使用系统ghc。检查你的一个依赖关系是否需要ghc8。 –

+0

thx的评论。 我和堆栈列表依赖 ' 堆栈列表依赖 基地检查4.9.1.0 GHC-整洁0.5.0.0 哈斯克尔底漆0.1.0.0 整数GMP 1.0.0.1 RTS 1.0' –

+0

压倒一切解析器INTO stack.yaml似乎工作。我编辑它以使用lts-6.35,现在它映射到system-ghc。 但是......我不知道这是否是解决问题的办法。我不想手动编辑我所有的stack.yaml文件... –

回答

6

设置system-ghc: true允许堆栈使用系统GHC,如果它符合解析器的约束。它不会force堆栈使用系统GHC,如果它不符合约束。如果您的解析器需要GHC 8,但是您的系统具有GHC 7,那么Stack不会使用您的系统GHC,无论您给出的值是多少system-ghc。相反,如果system-ghc: false那么堆栈将从来没有使用系统GHC,无论其版本是否匹配。

Stack FAQ,重点煤矿:

如果你想堆使用您的系统GHC的安装,使用--system-ghc标志或运行堆栈配置设置system-ghc --global true使堆栈通过检查你的PATH一个合适的GHC默认。

请注意,堆栈只能使用系统GHC安装,如果其版本与当前项目的配置兼容,特别是resolver设置