0

当试图编译我的ghcjs/jsaddle基于 Haskell 网站时,我得到

Main.hs:20:1: error:
    Failed to load interface for ‘GHCJS.DOM.Element’
    It is a member of the hidden package ‘jsaddle-dom-0.9.2.0’.
    Perhaps you need to add ‘jsaddle-dom’ to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

即使jsaddle-dom已经在build-depends我的阴谋集团文件中。

所以我不能做错误信息所暗示的事情。

这是怎么回事?

4

1 回答 1

0

你应该把build-depends: ghcjs-dom而不是build-depends: jsaddle-dom放在你的 cabal 文件中。

这是因为ghcjs-dom是实数ghcjs-dom-jsffijsaddle-dom.

查看ghcjs-dom cabal 文件以了解这一点。

为什么 ghc 的错误信息如此具有误导性?感谢freenode IRC 频道jonored#reflex-frp解释:

ghcjs-dom 只是对该平台上 jsaddle 中模块的引用。所以它不是它实际规范的位置,ghc 会告诉你它在哪里。但是您需要 ghcjs-dom,以便它告诉您在 ghcjs 上基于 ghcjs 的实现。

于 2018-05-24T01:20:38.443 回答