Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于gtk-0.14.2生成错误,haskell图表安装失败_Haskell_Haskell Stack_Gtk2hs - Fatal编程技术网

由于gtk-0.14.2生成错误,haskell图表安装失败

由于gtk-0.14.2生成错误,haskell图表安装失败,haskell,haskell-stack,gtk2hs,Haskell,Haskell Stack,Gtk2hs,我正在尝试从(github)安装haskell图表,我克隆了它,安装了stack,运行了stack安装程序(它成功安装了GHC),但我运行了make,但失败了,并显示以下消息: ... Chart-cairo-1.8: copy/register Chart-diagrams-1.8: copy/register Progress: 4/6 -- While building package gtk-0.14.2 using: /tmp/stack4807/gtk-0.14.2/.

我正在尝试从(github)安装haskell图表,我克隆了它,安装了stack,运行了stack安装程序(它成功安装了GHC),但我运行了make,但失败了,并显示以下消息:

...
Chart-cairo-1.8: copy/register
Chart-diagrams-1.8: copy/register
Progress: 4/6
--  While building package gtk-0.14.2 using:
      /tmp/stack4807/gtk-0.14.2/.stack-work/dist/x86_64-linux/Cabal-1.22.5.0/setup/setup --builddir=.stack-work/dist/x86_64-linux/Cabal-1.22.5.0 build --ghc-options " -ddump-hi -ddump-to-file"
    Process exited with code: ExitFailure 1
...

[ 22 of 209] Compiling Graphics.UI.Gtk.Embedding.Plug ( .stack-work/dist/x86_64-linux/Cabal-1.22.5.0/build/Graphics/UI/Gtk/Embedding/Plug.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.5.0/build/Graphics/UI/Gtk/Embedding/Plug.o )

    /tmp/stack4807/gtk-0.14.2/Graphics/UI/Gtk/Embedding/Plug.chs:120:6:
        Couldn't match expected type ‘CUInt’
                    with actual type ‘Maybe DrawWindow’
        In the first argument of ‘gtk_plug_new’, namely...

堆栈版本为1.1.2 x86_64 hpack-0.14.1,LTS Haskell 5.18(ghc-7.10.3)。如何处理此错误?

使用brew我将gtk+从2.24.25版升级到2.24.30版,并安装了最新版本的XQuartz(2.7.9版-我无法确定最初安装的版本)

通过这些更改,我能够成功地使用
堆栈构建
构建项目

特定命令:

$ brew cask install xquartz --force
$ brew upgrade gtk

使用brew我将gtk+从2.24.25版升级到2.24.30版,并安装了最新版本的XQuartz(2.7.9版-我无法确定最初安装的版本)

通过这些更改,我能够成功地使用
堆栈构建
构建项目

特定命令:

$ brew cask install xquartz --force
$ brew upgrade gtk

为了在linux上从github源代码构建haskell图表,应该在
stack.yaml

flags:
    gtk:
        have-quartz-gtk: true


因为Linux不使用Quartz flag
有Quartz gtk
,并且构建gtk不需要Quartz(Windows也不使用Quartz)。

为了在Linux上从github源代码构建haskell图表,应该在
堆栈中替换。yaml

flags:
    gtk:
        have-quartz-gtk: true


因为Linux不使用Quartz flag
而拥有Quartz gtk
,并且构建gtk不需要Quartz(Windows也不使用Quartz)。

请注意,您实际上不必使用gtk。图表库有两个渲染后端-一个基于gtk2hs,另一个基于库。cairo后端速度明显更快,而diagrams后端是纯haskell的,因此更容易构建

默认情况下,会生成两个后端,但您可以使用以下内容仅构建核心库和后端关系图:


堆栈构建./chart./chart图表

请注意,您实际上不必使用gtk。图表库有两个渲染后端-一个基于gtk2hs,另一个基于库。cairo后端速度明显更快,而diagrams后端是纯haskell的,因此更容易构建

默认情况下,会生成两个后端,但您可以使用以下内容仅构建核心库和后端关系图:


堆栈构建./chart./chart图表

您是否使用较新的LTS解析器进行了尝试?我尝试了使用gtk-0.13.9的LTS-3.22,但在gtk-0.14.2上出现了相同的错误。我是haskell和stack的新手,但使用lts-3.22的stack要求我提供另一个版本的ghc(这意味着stack实际上使用lts-3.22)。最近的解析器与haskell图表依赖项的要求冲突。您是否使用过更新的lts解析器?我尝试过使用gtk-0.13.9的lts-3.22,但在gtk-0.14.2方面得到了相同的错误。我是haskell和stack的新手,但使用lts-3.22的stack要求我提供另一个版本的ghc(这意味着stack确实使用lts-3.22)。最近的解析器与haskell图表依赖项的要求冲突。实际上,此标志已经在stack.yaml中。另外,
stack build——flag gtk:have quartz gtk
也会导致相同的错误。我的操作系统是Arch Linux,而不是mac。我通过Arch package manager将gtk从2.24.28升级到2.24.30,但是
stack build
会导致完全相同的错误。实际上,这个标志已经在stack.yaml中了。另外
堆栈构建--flag gtk:have quartz gtk
也会导致相同的错误。我的操作系统是Arch Linux,而不是mac。我通过Arch package manager将gtk从2.24.28升级到2.24.30,但是
堆栈构建
会导致完全相同的错误。实际上,我现在正在使用cairo进行PDF输出。我遵循您的建议,将我的数字作为一个“包”,包含自己的stack.yaml和cabal文件。我现在明白了,我不必使用gtk,但我只是想看看源代码内部,也许做一些修改,等等,并由此学习Haskell。实际上,我现在使用cairo进行PDF输出。我遵循您的建议,将我的数字作为一个“包”,包含自己的stack.yaml和cabal文件。我现在明白了,我不必使用gtk,但我只是想看看源代码内部,也许会做一些修改,等等,然后通过这个来学习Haskell。谢谢你的回答。我把它添加到感谢的答案中。我把它添加到