2016-09-02 4 views
0

に失敗した私はhere(githubの)からHaskellのチャートをインストールしようとしている、私はそれを複製し、スタックをインストールし、(それがインストールスタックセットアップを走りましたGHCが正常)が、その後、私はメッセージで失敗を作る走っ:インストールが原因のgtk-0.14.2のビルドエラー

... 
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)です。このエラーで何ができますか?

+0

あなたは、より最近のLTSリゾルバでそれを試してみましたか? – leftaroundabout

+0

私はlts-3.22を試しました。(https://www.stackage.org/lts-3.22/docs)gtk-0.13.9を使うはずですが、gtk-0.14.2については同じエラーが出ます。私はhaskellとスタックで新しいですが、lts-3.22でスタックするとghcの別のバージョンが頼まれました(つまりスタックは実際にlts-3.22を使用します)。 –

+0

多くの_recent_リゾルバは、haskell-chart依存関係の要件と競合します。 –

答えて

0

私は+バージョン2.24.25から2.24.30にGTKをアップグレードし、XQuartzの最新バージョンをインストール醸造を使用して(バージョン2.7.9を - 。私は、私が最初にインストールしたバージョンを確認できなかった)

これらの変更により、stack buildでプロジェクトを構築することに成功しました。

特定のコマンド:1は

flags: {} 

stack.yaml

flags: 
    gtk: 
     have-quartz-gtk: true 

にLinux上でgithubのソースからHaskellのチャートを構築するために

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

実際には、このフラグはすでにstack.yamlにあります。また'stack build --flag gtk:have-quartz-gtk'は同じエラーにつながります。 –

+0

回答が更新されました。 – ErikR

+0

私のOSはMacではなく、Arch Linuxです。 –

2

を交換する必要がありますので、Linuxのドン」 Quartzフラグhave-quartz-gtkを使用し、Quartzはビルドする必要はありませんd gtk(WindowsではQuartzを使用しません)。

+0

答えに感謝します。私はそれを[github issue]に追加しました(https://github.com/timbod7/haskell-chart/issues/163#issuecomment-318504387) – palik

0

実際にgtkを使用する必要はありません。チャートライブラリのレンダリングバックエンドは2つあります.1つはcairo(gtk2hs)、もう1つはdiagrams(ライブラリ)です。 cairoのバックエンドはかなり高速ですが、ダイアグラムのバックエンドは純粋なhaskellであるため、構築が容易です。

デフォルトでは、両方のバックエンドが構築されていますが、あなたがちょうどコアライブラリとダイアグラムのバックエンドを構築することができます。

stack build ./chart ./chart-diagrams

+0

実際には、私は今PDF出力に_cairo_を使用しています。私はあなたの[前の提案](https://github.com/timbod7/haskell-chart/issues/138)に従って、私の人物を独自のstack.yamlとcabalファイルで "パッケージ"にします。私は今gtkを使う必要はないが、ソースコードを見てみたい、ちょっと変わったり、これでHaskellを学びたいと思った。 –

関連する問題