过去有很多技巧来编译难以找到的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
如何解决任何提示修复错误?
答案 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。
很少有地方可以检查 -
你有合适的头文件吗?在我的机器上,WebKitDOMBarInfo结构在名为/usr/include/webkitgtk-3.0/webkit/WebKitDOMBarInfo.h的文件中定义。 (您的计算机上的位置可能不同,但文件应具有相同的基本名称,WebKitDOMBarInfo.h)
如果您有该文件,请验证该结构是否已定义(实际上,该结构称为_WebKitDOMBarInfo,而没有下划线的版本是typedef)。
确认您的gtk2hsC2hs是最新版本。这是将c头文件转换为haskell代码的程序。旧版本可能会被某些功能混淆(可能类似于typedef)。请参阅How to upgrade gtk2hsC2hs?以升级到最新版本的gtk2hsC2hs。
验证您的系统是否已正确设置以查找标头文件。
同样,因为它适用于我,我不知道任何这些事情都能解决问题,但是如果你看一下这些事情并在这里发布结果,我们可以再次迭代。