Il problema di fondo:Haskell gtk Tipo di installazione conflitti
Sto tentando di installare il pacchetto di Haskell gtk
utilizzando il standard mac instructions su OSX 10.10.4. In particolare, voglio eseguire threadscope
, quindi ho bisogno di gtk
. stadi precoci con homebrew
e l'ammenda gtk buildtools
lavoro, ma quando ho
cabal install gtk
o utilizzare
cabal install --with-gcc=gcc-4.8 gtk
ottengo il seguente errore di compilazione:
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:
ho già avuto biblioteca di Haskell gtk
e Applicazione threadscope
installata e in esecuzione prima di aggiornare la piattaforma Haskell daDa 210 a ghc 7.10.2
. All'inizio ho presupposto un conflitto di installazione, ma ho rimosso ripetutamente la piattaforma Haskell dal mio sistema utilizzando thorough removal instructions e ritentato l'installazione threadscope
senza esito. Ho anche rimosso e reinstallato il sottostante gtk+
e pacchetti correlati usando homebrew
, ancora una volta senza successo.
Non sono sicuro di dove siano originati i tipi Ptr()
e Maybe DrawWindow
e quindi da dove potrebbe provenire il conflitto. Qualche idea su cosa potrebbe andare storto sarebbe gradita!
Ciao, grazie per la tua risposta! Purtroppo questo ha provocato gli stessi errori di cui sopra durante la generazione di gtk. –
Stai utilizzando GHC 7.10.2? La ricetta di cui sopra costruisce threadscope in una sandbox, in modo da poterla seguire senza disturbare i pacchetti installati se si è attualmente in una versione diversa di GHC. – ErikR
Sì, sto usando GHC 7.10.2, e sono molto confuso perché la ricetta non ha funzionato, dal momento che una sandbox era la mia cosa certa di ultima istanza. –