加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 编译qtHaskell时发生错误

发布时间:2020-12-14 04:07:54 所属栏目:Windows 来源:网络整理
导读:在qmake和mingw32-make之后,these指令成功, 并且我执行runhaskell Setup.hs build,我收到以下错误: [651 of 662] Compiling Qtc.Core.Attributes ( QtcCoreAttributes.hs,distbuildQtcCoreAttributes.o )QtcCoreAttributes.hs:584:13:Could not ded
在qmake和mingw32-make之后,these指令成功,
并且我执行runhaskell Setup.hs build,我收到以下错误:
[651 of 662] Compiling Qtc.Core.Attributes ( QtcCoreAttributes.hs,distbuildQtcCoreAttributes.o )
QtcCoreAttributes.hs:584:13:
Could not deduce (Qstt a (QDialogSc b))
  arising from a use of `slotReject''
from the context (Qstt a (QDialogSc b1))
  bound by the instance declaration
  at QtcCoreAttributes.hs:582:10-52
Possible fix:
  add (Qstt a (QDialogSc b)) to the context of
    the instance declaration
  or add an instance declaration for (Qstt a (QDialogSc b))
In the expression: slotReject'
In an equation for `reject'': reject' = slotReject'
In the instance declaration for `QsaSlotReject a'

Attributes.hs文件(第578 – 583行):

class QsaSlotReject w where
  slotReject',reject' ::  (Qslot w (w -> ()),(w -> ()))

instance (Qstt a (QDialogSc b)) => QsaSlotReject (a) where
  slotReject' = (Qslot "reject()",_ -> ())
  reject' = slotReject'

环境 :

> Windows 7
> Haskell平台2011.2.0
> Qt sdk 4.7

顺便说一句,我在这个过程中遇到了两次内存不足,但我猜这没关系.

麻烦来自于这个事实
data Qslot x f = Qslot String

因此,从Qslot“Blah blah”形式的给定项目推断x和f可能有点困难.自从去年秋天qthaskell的最后一个版本上升以来,GHC使用的推理机制可能发生了微妙的变化.

在任何情况下,它似乎编译,带有一些好奇的警告,并且示例工作,如果你替换

instance (Qstt a (QDialogSc b)) => QsaSlotReject (a) where
    slotReject' = (Qslot "reject()",_ -> ())
    reject' = slotReject'

instance (Qstt a (QDialogSc b)) => QsaSlotReject (a) where
   slotReject' = (Qslot "reject()",_ -> ())
   reject' = (Qslot "reject()",_ -> ())

那样ghc就不用多想了……

必须有一些东西可以使事情更精确.我不知道eta减少警告是否会在以后系统地开始出现,这与此线路有关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读