2016-11-10 8 views
1

パッケージgi-gtkに依存するテスト用のHaskell 2010プログラムをWindows 10上にstackでビルドすることはできません。コマンドプロンプトを使用して -スタックでWindows 10にgi-gtkパッケージをビルドする方法

[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) 

コンテキストがあるstackバージョン1.2.0、resolver: lts-7.8(GHC 8.0.1)とWindows 10バージョン10.0.14393:

具体的には、stack buildは、メッセージに依存gi-gdk-3.0.3: configure後/で失敗しますアクティブなコードページ:65001およびフォントDejaVu Sans Mono。なぜなら、無効な引数(無効な文字)がUnicodeと関係している可能性があるからです。コードページ65001の場合、localeEncodingはUTF-8です。

次の環境変数が設定されています:

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

このwikiページの光の中で:Using haskell gi in Windows

改訂アップデート:パッケージのローカルコピーを試して、何が上昇を与えていることが表示されます(私のシステム上の)C:\msys64\mingw64\share\gir-1.0にある*.girファイルの「スマート」一重引用符文字または二重引用符文字です。たとえば、「Right Single Quotation Mark」(U + 2019)文字です。私の場合に影響を受けたファイルはGdk-3.0.girGtk-3.0.girです。これらの '* .gir'ファイルを*.hsファイルに変換すると、最初の「スマート」引用符が検出された時点で中止されたように見えます。

+1

誰かがおそらく 'hSetEncoding stdout utf8'を見つけられません...これは多くのシステムではデフォルトであると思います。 – Alec

+0

@Alec、私は 'cabal install gi-gtk'がやっと働くように(途中で数回停滞した)' somewhere 'が 'stack'でなければならないと思います。私が従わないのは、アクティブなコードページ:65001、 'localeEncoding'(ハンドルが作成されたときのデフォルトであると理解しています)はすでに' UTF-8'です。 –

答えて

0

haskell-gi-0.20などresolver: nightly-2016-12-08で提供されています。これはもはや回避する必要はありません。


質問で識別される特定のエラーのために周りに私のオリジナル作品は*.girファイルを編集することでした。私は 'スマート'引用文字を見つけ、対応するASCII文字で置き換えました。

関連する問題