如何使用堆栈在Windows 10上构建gi-gtk包

时间:2016-11-10 23:09:18

标签: haskell gtk3 haskell-stack

我无法在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.0Gdk-3.0.gir。翻译那些' * .gir'文件到Gtk-3.0.gir文件似乎在第一个' smart'遇到报价字符。

1 个答案:

答案 0 :(得分:0)

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

我最初解决问题中指出的具体错误是编辑*.gir文件。我找到了聪明的'引号字符并用相应的ASCII字符替换它们。