2016-11-10 4 views
1

erstellen Ich bin nicht in der Lage, ein Test-Haskell 2010-Programm zu bauen, das auf Paket gi-gtk mit stack unter Windows 10 abhängt. Jede Anleitung, wie dies zu tun wäre, wäre willkommen.Wie gi-gtk-Paket unter Windows 10 mit Stack

Insbesondere versagt stack build bei/nach der Abhängigkeit gi-gdk-3.0.3: configure mit Nachricht:

[1 of 1] Compiling Main    (C:\Users\MIKEPI~1\AppData\Local\Temp\stack2692\gi-gdk-3.0.3\Setup.hs, C:\Users\MIKEPI~1\AppData\Local\Temp\stack2692\gi-gdk-3.0.3\.stack-work\dist\b7fec021\setup\Main.o) 
Linking C:\Users\MIKEPI~1\AppData\Local\Temp\stack2692\gi-gdk-3.0.3\.stack-work\dist\b7fec021\setup\setup.exe ... 
GI\Gdk\Structs\EventProximity.hs: commitAndReleaseBuffer: invalid argument 
(invalid character) 

Der Kontext ist stack Version 1.2.0, resolver: lts-7.8 (GHC 8.0.1) und Windows 10 Version 10.0.14393 - die Eingabeaufforderung mit aktiver Codepage: 65001 und Schriftart DejaVu Sans Mono. Ich erwähne letzteres, weil ich an anderer Stelle gelesen habe, dass 'ungültiges Argument (ungültiges Zeichen)' etwas mit Unicode zu tun haben kann. Mit Codepage 65001 ist localeEncoding UTF-8.

Die folgenden Umgebungsvariablen gesetzt wurde:

PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig 
XDG_DATA_DIRS=C:\msys64\mingw64\share 

im Lichte dieser Wiki-Seite: Using haskell gi in Windows

überarbeitete Update: mit einer lokalen Kopie des Pakets zu experimentieren, scheint es, dass das, was Anlass geben wird Das Problem ist "smart" einzelne oder doppelte Anführungszeichen Zeichen in *.gir Dateien an (auf meinem System) C:\msys64\mingw64\share\gir-1.0. Zum Beispiel ein 'Right Single Anführungszeichen' (U + 2019) Zeichen. Die betroffenen Dateien in meinem Fall sind Gdk-3.0.gir und Gtk-3.0.gir. Die Übersetzung dieser * .gir-Dateien in *.hs-Dateien scheint an der Stelle abzubrechen, an der das erste "intelligente" Anführungszeichen angetroffen wird.

+1

Irgendwo fehlt wahrscheinlich 'hSetEncoding stdout utf8' ... Ich denke, das ist auf vielen Systemen Standard, weshalb es bis jetzt vermisst worden wäre. – Alec

+0

@ Alec, ich denke, dass "irgendwo" "stack" sein muss, da 'cabal install gi-gtk' letztendlich zu funktionieren scheint (es ist ein paar Mal auf dem Weg ins Stocken geraten). Was ich nicht befolge, ist, dass mit der aktiven Codepage: 65001, 'localeEncoding' (was ich als Standard bei der Erstellung eines Handles verstehe) bereits' UTF-8' ist. –

Antwort

0

Mit haskell-gi-0.20 etc. unter resolver: nightly-2016-12-08 bereitgestellt ist dies kein Problem mehr, das eine Arbeit erfordert.


Meine ursprüngliche Arbeit um für den spezifischen Fehler in der Frage identifiziert war, die *.gir-Dateien zu bearbeiten. Ich fand "intelligente" Anführungszeichen und ersetzte sie durch die entsprechenden ASCII-Zeichen.

Verwandte Themen