Ich versuche gtk über Kabale zu installieren, aber ich bin der folgenden Art Fehler bekommen, wenn esCabal installieren gtk Fehler
[ 22 of 209] Compiling Graphics.UI.Gtk.Embedding.Plug (dist/build/Graphics/UI/Gtk/Embedding/Plug.hs, dist/build/Graphics/UI/Gtk/Embedding/Plug.o)
Graphics/UI/Gtk/Embedding/Plug.chs:120:6: error:
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: error:
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: error:
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)
Failed to install gtk-0.13.9
cabal: Error: some packages failed to install:
gtk-0.13.9 failed during the building phase. The exception was:
ExitFailure 1
Gebäude
dieses Paket installieren zu können, müssen Sie „gtk2hsC2hs“ und den Typ Fehler sind in .chs
Dateien, die vermutlich aus dem Tool gtk2hsC2hs generiert werden. Ist das ein bekanntes Problem mit gtk2hsC2hs? Hat jemand anderes dieses Paket bauen können? Wer kennt eine Lösung?
Ich bin auf Mac OS X Yosemite (10.10.4)
$ gtk2hsC2hs --version
C->Haskell Compiler, version 0.13.13 (gtk2hs branch) "Bin IO", 27 May 2012
$ cabal --version
cabal-install version 1.22.6.0
using version 1.22.4.0 of the Cabal library
Ich habe eine cabal update
getan, so dass alle meine Pakete auf dem neuesten Stand zu sein scheinen. Ich habe auch versucht, einige der älteren Versionen zu bauen, die von Hacker verfügbar sind, aber ich bekomme die gleichen Fehler.
bearbeiten
Die Fehler in den generierten Dateien scheinen, auf alle befassen sich mit den FFI Einfuhren, die von gtk2hsC2hs erzeugt zu werden. Am Ende der Datei, ich bin immer
Es scheint konsequent Ptr()
mit Maybe DrawWindow
bis zu mischen. Also ist der generierte Typ Ptr()
falsch, oder ist die Verwendung falsch?
Nur ein kurzer Kommentar, nicht zu schauen genug hatte in einer ähnlichen Situation endet Zeit zu schreiben eine Antwort: '.chs' Dateien werden nicht von' gtk2hsC2hs' erzeugt; Sie werden von Hand geschrieben und von 'gtk2hsC2hs' verarbeitet, um' .hs'-Dateien zu erzeugen. Wenn Sie möchten, können Sie in diesen Dateien suchen; 'cabal' speichert sie im' dist'-Verzeichnis. Es wird Pragmas geben, die von der '.hs'-Datei zurück zur' .chs'-Datei zeigen. So weiß GHC, wo in der '.chs'-Datei die Fehler angezeigt werden. –
Ok danke für den Tipp. Ich werde das untersuchen. – Matt