我无法在Windows 10上构建依赖于gi-gtk
包的测试Haskell 2010程序。任何有关如何执行该操作的指导都将受到赞赏。
具体而言,stack
在依赖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)
版本1.2.0,stack
(GHC 8.0.1)和Windows 10版本10.0.14393 - 使用带有活动代码页的命令提示符:65001和字体DejaVu Sans Mono。我提到了后者,因为我在其他地方读到过无效的论点(无效的字符)'可以与Unicode有关。使用代码页65001,resolver: lts-7.8
是UTF-8。
已设置以下环境变量:
localeEncoding
根据此Wiki页面:Using haskell gi in Windows
修订更新:尝试使用该软件包的本地副本,似乎导致问题的原因是“智能”。 ({我的系统上] PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig
XDG_DATA_DIRS=C:\msys64\mingw64\share
*.gir
个文件中的单引号或双引号字符。例如,右单引号' (U + 2019)字符。在我的案例中受影响的文件是C:\msys64\mingw64\share\gir-1.0
和Gdk-3.0.gir
。翻译那些' * .gir'文件到Gtk-3.0.gir
文件似乎在第一个' smart'遇到报价字符。
答案 0 :(得分:0)
在haskell-gi-0.20
下提供resolver: nightly-2016-12-08
等,这不再是需要解决的问题。
我最初解决问题中指出的具体错误是编辑*.gir
文件。我找到了聪明的'引号字符并用相应的ASCII字符替换它们。