Haskell 如何在windows10上用stack构建gigtk包

Haskell 如何在windows10上用stack构建gigtk包,haskell,gtk3,haskell-stack,Haskell,Gtk3,Haskell Stack,我无法构建一个依赖于Windows 10上的包gi gtk和stack的测试Haskell 2010程序。如有任何关于如何做到这一点的指导,我们将不胜感激 具体来说,stack build在依赖项gi-gdk-3.0.3:configure时失败,并显示以下消息: [1 of 1] Compiling Main ( C:\Users\MIKEPI~1\AppData\Local\Temp\stack2692\gi-gdk-3.0.3\Setup.hs, C:\Users\

我无法构建一个依赖于Windows 10上的包
gi gtk
stack
的测试Haskell 2010程序。如有任何关于如何做到这一点的指导,我们将不胜感激

具体来说,
stack build
在依赖项
gi-gdk-3.0.3:configure
时失败,并显示以下消息:

[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
version 1.2.0、
resolver:lts-7.8
(GHC 8.0.1)和Windows 10 version 10.0.14393-使用带有活动代码页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页面:


修订版更新:在试用程序包的本地副本时,出现问题的似乎是(在我的系统上)的
*.gir
文件中的“智能”单引号或双引号字符
C:\msys64\mingw64\share\gir-1.0
。例如,“右单引号”(U+2019)字符。在我的案例中受影响的文件是
Gdk-3.0.gir
Gtk-3.0.gir
。将这些“*.gir”文件转换为
*.hs
文件的过程似乎在遇到第一个“智能”引号字符时中止。

使用
解析器:nightly-2016-12-08
下提供的
haskell-gi-0.20
等,这不再是需要解决的问题



针对问题中确定的特定错误,我最初的工作是编辑
*.gir
文件。我找到了“智能”引号字符,并将其替换为相应的ASCII字符。

某个地方可能缺少
hSetEncoding标准输出utf8
。。。我认为这是许多系统的默认设置,这就是为什么到目前为止它一直被错过的原因。@Alec,我认为“某处”一定是
stack
,因为
cabal install gi gtk
似乎最终会起作用(它在途中停顿了几次)。我不明白的是,对于活动代码页65001,
localeEncoding
(我理解为创建句柄时的默认值)已经是
UTF-8