Haskell:无法构建webkitgtk3库

时间:2013-12-03 23:43:40

标签: haskell

过去有很多技巧来编译难以找到的haskell库。

webkitgtk3库无法构建。

ERROR:

cabal install webkitgtk3
Resolving dependencies...
[1 of 2] Compiling SetupWrapper     ( /tmp/webkitgtk3-0.12.5-28865/webkitgtk3-0.12.5/SetupWrapper.hs, /tmp/webkitgtk3-0.12.5-28865/webkitgtk3-0.12.5/dist/setup/SetupWrapper.o )

/tmp/webkitgtk3-0.12.5-28865/webkitgtk3-0.12.5/SetupWrapper.hs:118:28: Warning:
    In the use of `configCompiler'
    (imported from Distribution.Simple.Configure):
    Deprecated: "'configCompiler' is deprecated. Use 'configCompilerEx' instead."
[2 of 2] Compiling Main             ( /tmp/webkitgtk3-0.12.5-28865/webkitgtk3-0.12.5/Setup.hs, /tmp/webkitgtk3-0.12.5-28865/webkitgtk3-0.12.5/dist/setup/Main.o )
Linking /tmp/webkitgtk3-0.12.5-28865/webkitgtk3-0.12.5/dist/setup/setup ...
[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 ...
Configuring webkitgtk3-0.12.5...
Building webkitgtk3-0.12.5...
Preprocessing library webkitgtk3-0.12.5...
gtk2hsC2hs: Errors during expansion of binding hooks:

./Graphics/UI/Gtk/WebKit/Types.chs:1100: (column 12) [ERROR] 
  >>> Unknown identifier!
  Cannot find a definition for `WebKitDOMBarInfo' in the header file.
./Graphics/UI/Gtk/WebKit/Types.chs:1865: (column 12) [ERROR] 
  >>> Unknown identifier!
  Cannot find a definition for `WebKitDOMMemoryInfo' in the header file.

Failed to install webkitgtk3-0.12.5
cabal: Error: some packages failed to install:
webkitgtk3-0.12.5 failed during the building phase. The exception was:
ExitFailure 1

如何解决任何提示修复错误?

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,它只是正确安装给我,所以我只能猜到你机器上出了什么问题,但是你提供的错误信息确实有一些线索......

重要的界限似乎在这里

./Graphics/UI/Gtk/WebKit/Types.chs:1100: (column 12) [ERROR] 
  >>> Unknown identifier!
  Cannot find a definition for `WebKitDOMBarInfo' in the header file.
./Graphics/UI/Gtk/WebKit/Types.chs:1865: (column 12) [ERROR] 
  >>> Unknown identifier!
  Cannot find a definition for `WebKitDOMMemoryInfo' in the header file.

我通过输入“cabal unpack webkitgtk3”并cd'ing到子目录下载了webkitgtk3的源代码。看看Graphics / UI / Gtk / WebKit / Types.chs,第1100行,我看到以下内容

{#pointer *WebKitDOMBarInfo as BarInfo foreign newtype #} deriving (Eq,Ord)

Haskell“.chs”文件用于将Haskell绑定到c头文件。这一行告诉编译器构建工具根据webkit c头文件中的结构创建一个数据对象,名为WebKitDOMBarInfo。

很少有地方可以检查 -

  1. 你有合适的头文件吗?在我的机器上,WebKitDOMBarInfo结构在名为/usr/include/webkitgtk-3.0/webkit/WebKitDOMBarInfo.h的文件中定义。 (您的计算机上的位置可能不同,但文件应具有相同的基本名称,WebKitDOMBarInfo.h)

  2. 如果您有该文件,请验证该结构是否已定义(实际上,该结构称为_WebKitDOMBarInfo,而没有下划线的版本是typedef)。

  3. 确认您的gtk2hsC2hs是最新版本。这是将c头文件转换为haskell代码的程序。旧版本可能会被某些功能混淆(可能类似于typedef)。请参阅How to upgrade gtk2hsC2hs?以升级到最新版本的gtk2hsC2hs。

  4. 验证您的系统是否已正确设置以查找标头文件。

  5. 同样,因为它适用于我,我不知道任何这些事情都能解决问题,但是如果你看一下这些事情并在这里发布结果,我们可以再次迭代。