podstawowy problem:Haskell gtk Install Type konfliktów
Ja próbuje zainstalować gtk
pakiet Haskell za pomocą standard mac instructions na OSX 10.10.4. W szczególności chcę uruchomić threadscope
, więc potrzebuję gtk
. Wczesne stadia z homebrew
i grzywny gtk buildtools
pracy, ale kiedy
cabal install gtk
lub użyj
cabal install --with-gcc=gcc-4.8 gtk
otrzymuję następujący błąd kompilacji:
Graphics/UI/Gtk/Embedding/Plug.chs:120:6:
Couldn't match expected type ‘Ptr()’
with actual type ‘Maybe DrawWindow’
In the first argument of ‘gtk_plug_new’, namely
‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
In the second argument of ‘($)’, namely
‘gtk_plug_new
(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
Graphics/UI/Gtk/Embedding/Plug.chs:137:6:
Couldn't match expected type ‘Ptr()’
with actual type ‘Maybe DrawWindow’
In the second argument of ‘\ (Display arg1) arg2
-> withForeignPtr arg1
$ \ argPtr1 -> gtk_plug_new_for_display argPtr1 arg2’, namely
‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
In the second argument of ‘($)’, namely
‘(\ (Display arg1) arg2
-> withForeignPtr arg1
$ \ argPtr1 -> gtk_plug_new_for_display argPtr1 arg2)
display
(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
Graphics/UI/Gtk/Embedding/Plug.chs:151:3:
Couldn't match type ‘Ptr()’ with ‘Maybe DrawWindow’
Expected type: IO (Maybe DrawWindow)
Actual type: IO (Ptr())
In the second argument of ‘($)’, namely
‘(\ (Plug arg1)
-> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_get_id argPtr1)
(toPlug self)’
In the expression:
liftM toNativeWindowId
$ (\ (Plug arg1)
-> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_get_id argPtr1)
(toPlug self)
cabal: Error: some packages failed to install:
I poprzednio miał gtk
bibliotekę Haskell i threadscope
aplikacja zainstalowana i działająca przed aktualizacją mojej platformy Haskell z ghc 7.8.4
do ghc 7.10.2
. Najpierw założyłem konflikt instalacyjny, ale wielokrotnie usunąłem platformę Haskell z mojego systemu przy użyciu thorough removal instructions i ponownie spróbowałem instalacji threadscope
bez powodzenia. Usunąłem i ponownie zainstalowałem podstawowy gtk+
i powiązane pakiety przy użyciu homebrew
, znowu bez powodzenia.
Nie jestem pewien, skąd pochodzą typy Ptr()
i Maybe DrawWindow
, a zatem skąd może pochodzić konflikt. Wszelkie pomysły na to, co może pójść źle, będą mile widziane!
Witam, dziękuję za odpowiedź! Niestety spowodowało to te same błędy, co powyżej podczas budowania gtk. –
Czy używasz GHC 7.10.2? Powyższy przepis buduje threadscope w piaskownicy, dzięki czemu można go śledzić bez naruszania zainstalowanych pakietów, jeśli aktualnie używasz innej wersji GHC. – ErikR
Tak, używam GHC 7.10.2 i jestem bardzo zdezorientowany, dlaczego przepis nie zadziałał, ponieważ piaskownica była moją ostatnią deską ratunku. –