因此,我正在尝试使用反应性香蕉+ wxHaskell进行GUI编程。作为Haskell及其开发工具的新手,我对堆栈感到非常困惑。
所以我尝试stack install wx
,提示我安装wxcore
,提示我安装wxc
和wxdirect
。在我之后stack install wxdirect
,我尝试跑步stack install wxc
,但是瞧瞧:
While constructing the BuildPlan the following exceptions were encountered:
-- Failure when adding dependencies:
wxdirect: needed (>=0.90.1.1), not present in build plan (latest is 0.92.1.0)
needed for package: wxc-0.92.1.1
-- While attempting to add dependency,
Could not find package wxdirect in known packages
Recommended action: try adding the following to your extra-deps in {project root}/stack.yaml
- wxdirect-0.92.1.0
简而言之,我正在尝试使用stack
like cabal-install
。而且我不确定为什么这是错误的。如果错了,那么stack
和之间有什么区别cabal-install
?
堆栈安装和阴谋安装之间的区别在于,堆栈需要一个(包装,版本)的精选列表。结果是,堆栈将确保这些版本的那些软件包都可以编译并且令人愉悦。似乎wxdirect不在策划列表中。您应该使用stackage提交PR,这是一件很了不起的事情,因为它也会为其他用户解决此问题。
您还可以采用最后几行中给出的建议:
Recommended action: try adding the following to your extra-deps in {project root}/stack.yaml
- wxdirect-0.92.1.0
并修改您的stack.yaml文件。更改默认值
# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
extra-deps: []
至
extra-deps:
- wxdirect-0.92.1.0
堆栈现在将尝试进行假装安装,好像该安装(软件包,版本)已进入策划列表一样。
您可能仍然会遇到以下问题。
如果您不在一个项目中(并且您想将一个程序包堆栈安装到用户数据库中,而cabal install会以静默方式完成),那么您将遇到此问题。这是堆栈安装和cabal安装之间的区别之一,但这是一个很好的选择:cabal安装软件包只是将其放入全局数据库中。在需要更新软件包之前,这非常有用。使用堆栈,您将始终处于项目中。如果您使用stack.yaml在项目外部运行stack,stack将咨询您的~/.stack/global/stack.yaml
。只是把多余的东西粘在那里。
确保堆栈升级,并在resolver:
中的另一个字段中使用最新的LTS版本stack.yaml
。这样可以确保您拥有最新的策展。
您可能需要尝试旧版本的wxdirect。堆栈软件包有时(但通常不是)落后于每个软件包的最新发行版。
您可能遇到了堆栈问题。我以前见过堆栈错误。您也可以在IRC频道上提问。如果那不起作用,只需在/ r / haskell上badge一下Edward Kmett,他就会用数学解决它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句