尝试在mac缺少依赖项上安装gtk

时间:2016-08-12 10:17:44

标签: macos haskell gcc gtk2hs

我尝试在我的mac上安装gtk haskell。我使用this网站来安装它。但是我在命令的最后一步失败了:Resolving dependencies... cabal: Could not resolve dependencies: next goal: gtk (user goal) rejecting: gtk-0.14.5, gtk-0.14.4, gtk-0.14.3, gtk-0.14.2, gtk-0.13.9, gtk-0.13.8.1, gtk-0.13.8, gtk-0.13.7, gtk-0.13.6, gtk-0.13.4, gtk-0.13.3, gtk-0.13.2, gtk-0.13.1, gtk-0.13.0.3, gtk-0.13.0.2, gtk-0.13.0.1, gtk-0.13.0.0, gtk-0.12.5.7, gtk-0.12.5.6, gtk-0.12.5.5, gtk-0.12.5.4, gtk-0.12.5.3, gtk-0.12.5.2, gtk-0.12.5.1, gtk-0.12.5.0, gtk-0.12.4, gtk-0.12.3.1, gtk-0.12.3, gtk-0.12.2, gtk-0.12.1, gtk-0.12.0, gtk-0.11.2, gtk-0.11.1, gtk-0.11.0 (conflict: requires pkg-config package gtk+-2.0-any, not found in the pkg-config database) Dependency tree exhaustively searched.

终端答案是:

cabal install gtk

Cabal应该是最新的。

提前致谢。

编辑:执行ErikR配方后,它开始使用命令Resolving dependencies... Configuring glib-0.13.4.0... Building glib-0.13.4.0... Installed glib-0.13.4.0 Downloading gio-0.13.3.0... Downloading pango-0.13.3.0... Configuring gio-0.13.3.0... Configuring pango-0.13.3.0... Building gio-0.13.3.0... Building pango-0.13.3.0... Installed pango-0.13.3.0 Installed gio-0.13.3.0 Downloading gtk-0.14.5... Configuring gtk-0.14.5... Building gtk-0.14.5... Failed to install gtk-0.14.5 Build log ( /Users/Max/.cabal/logs/gtk-0.14.5.log ): cabal: Entering directory '/var/folders/kr/2w9n7xxd6816d0rmgb05cfm00000gn/T/cabal-tmp-31721/gtk-0.14.5' [1 of 1] Compiling Main ( /var/folders/kr/2w9n7xxd6816d0rmgb05cfm00000gn/T/cabal-tmp-31721/gtk-0.14.5/dist/setup/setup.hs, /var/folders/kr/2w9n7xxd6816d0rmgb05cfm00000gn/T/cabal-tmp-31721/gtk-0.14.5/dist/setup/Main.o ) Linking /var/folders/kr/2w9n7xxd6816d0rmgb05cfm00000gn/T/cabal-tmp-31721/gtk-0.14.5/dist/setup/setup ... Configuring gtk-0.14.5... Building gtk-0.14.5... Preprocessing library gtk-0.14.5... [ 1 of 209] Compiling Graphics.UI.Gtk.ModelView.Sequence ( Graphics/UI/Gtk/ModelView/Sequence.hs, dist/build/Graphics/UI/Gtk/ModelView/Sequence.o ) [ 2 of 209] Compiling Graphics.UI.Gtk.Gdk.Enums ( dist/build/Graphics/UI/Gtk/Gdk/Enums.hs, dist/build/Graphics/UI/Gtk/Gdk/Enums.o ) [ 3 of 209] Compiling Graphics.UI.Gtk.General.Enums ( dist/build/Graphics/UI/Gtk/General/Enums.hs, dist/build/Graphics/UI/Gtk/General/Enums.o ) [ 4 of 209] Compiling Graphics.UI.Gtk.General.Threading ( Graphics/UI/Gtk/General/Threading.hs, dist/build/Graphics/UI/Gtk/General/Threading.o ) [ 5 of 209] Compiling Graphics.UI.Gtk.Signals ( dist/build/Graphics/UI/Gtk/Signals.hs, dist/build/Graphics/UI/Gtk/Signals.o ) [ 6 of 209] Compiling Graphics.UI.Gtk.Types ( dist/build/Graphics/UI/Gtk/Types.hs, dist/build/Graphics/UI/Gtk/Types.o ) [ 7 of 209] Compiling Graphics.UI.Gtk.General.DNDTypes ( dist/build/Graphics/UI/Gtk/General/DNDTypes.hs, dist/build/Graphics/UI/Gtk/General/DNDTypes.o ) [ 8 of 209] Compiling Graphics.UI.Gtk.Abstract.ContainerChildProperties ( dist/build/Graphics/UI/Gtk/Abstract/ContainerChildProperties.hs, dist/build/Graphics/UI/Gtk/Abstract/ContainerChildProperties.o ) [ 9 of 209] Compiling Graphics.UI.Gtk.Embedding.Types ( dist/build/Graphics/UI/Gtk/Embedding/Types.hs, dist/build/Graphics/UI/Gtk/Embedding/Types.o ) [ 10 of 209] Compiling Graphics.UI.Gtk.Embedding.Embedding ( dist/build/Graphics/UI/Gtk/Embedding/Embedding.hs, dist/build/Graphics/UI/Gtk/Embedding/Embedding.o ) [ 11 of 209] Compiling Graphics.UI.Gtk.ModelView.Types ( dist/build/Graphics/UI/Gtk/ModelView/Types.hs, dist/build/Graphics/UI/Gtk/ModelView/Types.o ) [ 12 of 209] Compiling Graphics.UI.Gtk.Gdk.PixbufData ( Graphics/UI/Gtk/Gdk/PixbufData.hs, dist/build/Graphics/UI/Gtk/Gdk/PixbufData.o ) [ 13 of 209] Compiling Graphics.UI.Gtk.Gdk.PixbufAnimation ( dist/build/Graphics/UI/Gtk/Gdk/PixbufAnimation.hs, dist/build/Graphics/UI/Gtk/Gdk/PixbufAnimation.o ) [ 14 of 209] Compiling Graphics.UI.Gtk.Builder ( dist/build/Graphics/UI/Gtk/Builder.hs, dist/build/Graphics/UI/Gtk/Builder.o ) [ 15 of 209] Compiling Graphics.UI.Gtk.Abstract.Separator ( Graphics/UI/Gtk/Abstract/Separator.hs, dist/build/Graphics/UI/Gtk/Abstract/Separator.o ) [ 16 of 209] Compiling Graphics.UI.Gtk.Abstract.Scrollbar ( Graphics/UI/Gtk/Abstract/Scrollbar.hs, dist/build/Graphics/UI/Gtk/Abstract/Scrollbar.o ) [ 17 of 209] Compiling Graphics.UI.Gtk.Abstract.Scale ( dist/build/Graphics/UI/Gtk/Abstract/Scale.hs, dist/build/Graphics/UI/Gtk/Abstract/Scale.o ) [ 18 of 209] Compiling Graphics.UI.Gtk.Abstract.Object ( dist/build/Graphics/UI/Gtk/Abstract/Object.hs, dist/build/Graphics/UI/Gtk/Abstract/Object.o ) [ 19 of 209] Compiling Graphics.UI.Gtk.Abstract.Paned ( dist/build/Graphics/UI/Gtk/Abstract/Paned.hs, dist/build/Graphics/UI/Gtk/Abstract/Paned.o ) [ 20 of 209] Compiling Graphics.UI.Gtk.General.Structs ( dist/build/Graphics/UI/Gtk/General/Structs.hs, dist/build/Graphics/UI/Gtk/General/Structs.o ) [ 21 of 209] Compiling Graphics.UI.Gtk.Abstract.Range ( dist/build/Graphics/UI/Gtk/Abstract/Range.hs, dist/build/Graphics/UI/Gtk/Abstract/Range.o ) [ 22 of 209] Compiling Graphics.UI.Gtk.Embedding.Plug ( dist/build/Graphics/UI/Gtk/Embedding/Plug.hs, dist/build/Graphics/UI/Gtk/Embedding/Plug.o ) Graphics/UI/Gtk/Embedding/Plug.chs:120:6: Couldn't match expected type ‘Ptr ()’ with actual type ‘Maybe DrawWindow’ In the first argument of ‘gtk_plug_new’, namely ‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’ In the second argument of ‘($)’, namely ‘gtk_plug_new (fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’ Graphics/UI/Gtk/Embedding/Plug.chs:137:6: Couldn't match expected type ‘Ptr ()’ with actual type ‘Maybe DrawWindow’ In the second argument of ‘\ (Display arg1) arg2 -> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_new_for_display argPtr1 arg2’, namely ‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’ In the second argument of ‘($)’, namely ‘(\ (Display arg1) arg2 -> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_new_for_display argPtr1 arg2) display (fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’ Graphics/UI/Gtk/Embedding/Plug.chs:151:3: Couldn't match type ‘Ptr ()’ with ‘Maybe DrawWindow’ Expected type: IO (Maybe DrawWindow) Actual type: IO (Ptr ()) In the second argument of ‘($)’, namely ‘(\ (Plug arg1) -> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_get_id argPtr1) (toPlug self)’ In the expression: liftM toNativeWindowId $ (\ (Plug arg1) -> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_get_id argPtr1) (toPlug self) cabal: Leaving directory '/var/folders/kr/2w9n7xxd6816d0rmgb05cfm00000gn/T/cabal-tmp-31721/gtk-0.14.5' cabal: Error: some packages failed to install: gtk-0.14.5 failed during the building phase. The exception was: ExitFailure 1 进行安装。这是错误信息,我得到了:

{{1}}

2 个答案:

答案 0 :(得分:3)

问题是pkg-config无法找到文件gtk+-2.0.pc

  

需要pkg-config包gtk + -2.0-any,   在pkg-config数据库中找不到

麻烦的步骤:

  1. 检查哪些目录pkg-config配置为查找.pc个文件:

    $  pkg-config --variable pc_path pkg-config
    
  2. 在我的系统上,gtk+-2.0.pc位于/usr/local/lib/pkgconfig。我通过设置PKG_CONFIG_PATH环境变量来扩展搜索路径:

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:
    
  3. 测试pkg-config可以找到gtk + -2.0:

    pkg-config gtk+-2.0 --exists && echo Found the library
    

    没有输出表示找不到.pc文件。您可以使用的另一个命令 检查是:

    pkg-config gtk+-2.0 --libs --print-errors
    

    您将看到C编译器的错误消息或一长串标志,告诉它如何链接gtk库。

  4. 查找.pc文件的另一个技巧是使用locate命令(假设locate数据库已更新):

    locate '*.pc' | grep gtk
    

答案 1 :(得分:1)

如果您使用的是Homebrew,则可以输入以下命令来安装gtk + 3:

brew install gtk+3