我一直在尝试编译一个依赖于Pango(通过Gtk3)的Haskell项目,到目前为止还没有成功。 似乎与预处理器一样(基于奇怪的错位类型名称),但我还没有找到确切的原因。
我在运行 Windows 10 和 GHC 7.10 的 64位计算机上使用stack
。我在同一台PC上使用Gtk3与cabal
编译了其他项目 - 所以我很确定它不是兼容性问题。
我已经在下面添加了一小部分构建日志。
[1 of 2] Compiling Gtk2HsSetup ( Gtk2HsSetup.hs, dist\setup-wrapper\Gtk2HsSetup.o )
[2 of 2] Compiling Main ( SetupMain.hs, dist\setup-wrapper\Main.o )
Linking dist/setup-wrapper\setup.exe ...
Configuring pango-0.13.1.0...
Building pango-0.13.1.0...
Preprocessing library pango-0.13.1.0...
[ 1 of 14] Compiling Graphics.Rendering.Pango.Types ( .stack-work\dist\i386-windows\Cabal-1.22.4.0\build\Graphics\Rendering\Pango\Types.hs, .stack-work\dist\i386-windows\Cabal-1.22.4.0\build\Graphics\Rendering\Pango\Types.o )
[ 2 of 14] Compiling Graphics.Rendering.Pango.BasicTypes ( .stack-work\dist\i386-windows\Cabal-1.22.4.0\build\Graphics\Rendering\Pango\BasicTypes.hs, .stack-work\dist\i386-windows\Cabal-1.22.4.0\build\Graphics\Rendering\Pango\BasicTypes.o )
[ 3 of 14] Compiling Graphics.Rendering.Pango.Structs ( .stack-work\dist\i386-windows\Cabal-1.22.4.0\build\Graphics\Rendering\Pango\Structs.hs, .stack-work\dist\i386-windows\Cabal-1.22.4.0\build\Graphics\Rendering\Pango\Structs.o )
GraphicsRenderingPangoStructs.hsc:79:21:
Not in scope: type constructor or class ÔÇÿWord420906795024ÔÇÖ
GraphicsRenderingPangoStructs.hsc:79:40:
Not in scope: type constructor or class ÔÇÿWord420906795024ÔÇÖ
GraphicsRenderingPangoStructs.hsc:79:59:
Not in scope: type constructor or class ÔÇÿWord420906795024ÔÇÖ
它继续存在大量几乎相同的错误。
编辑(参见haoformayor的评论)
我在发布此问题之前遇到了错误提示,但我不确定如何彻底解决printf
问题'干净利落的问题。我已经尝试过你的建议,但我最近从cabal过渡了,我仍然不熟悉stack
的基础知识。
编辑了我的stack.yaml文件(见下文)后,我遇到了同样的错误消息列表。
packages:
- location:
git: https://github.com/gtk2hs/gtk2hs.git
commit: dff5deae25a3f2c7d63ae583d1096b626bb6a9d2
如有必要,我会提供其他信息。也许我做错了什么?
修改
我修改了git
网址,并在我的packages
文件中删除了重复的stack.yaml
密钥。 Stack
现在能够在GitHub上找到gtk2hs
的最新版本,但抱怨缺少.cabal
文件。据推测,我必须通过一些替代构建系统(例如gtk2hs-buildtools
)来运行它。