用堆栈编译Pango

时间:2015-12-27 00:13:21

标签: haskell gtk preprocessor haskell-stack pango

我一直在尝试编译一个依赖于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)来运行它。

0 个答案:

没有答案