尝试在 mac 缺少的依赖项上安装 gtk
Try to install gtk on mac missing dependencies
我试图在我的 mac 上安装 gtk haskell。我使用 this 站点来安装它。但是我在最后一步失败了命令:sudo cabal install --with-gcc=gcc-4.8 gtk
最终答案是:
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 应该是最新的。
提前致谢。
编辑: 完成 ErikR 配方后,它开始使用命令 cabal install gtk
安装。这是错误信息,我得到:
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
问题是 pkg-config
找不到文件 gtk+-2.0.pc
:
requires pkg-config package gtk+-2.0-any,
not found in the pkg-config database
故障排除步骤:
检查哪些目录 pkg-config
配置为查找 .pc
文件:
$ pkg-config --variable pc_path pkg-config
在我的系统上,gtk+-2.0.pc
位于 /usr/local/lib/pkgconfig
。我通过设置 PKG_CONFIG_PATH
环境变量扩展了搜索路径:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:
测试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 编译器的标志,告诉它如何 link 使用 gtk 库。
另一个查找 .pc 文件的技巧是使用 locate
命令(假设 locate 数据库已更新):
locate '*.pc' | grep gtk
如果您使用的是 Homebrew,则可以通过键入以下内容来安装 gtk+3:
brew install gtk+3
我试图在我的 mac 上安装 gtk haskell。我使用 this 站点来安装它。但是我在最后一步失败了命令:sudo cabal install --with-gcc=gcc-4.8 gtk
最终答案是:
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 应该是最新的。
提前致谢。
编辑: 完成 ErikR 配方后,它开始使用命令 cabal install gtk
安装。这是错误信息,我得到:
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
问题是 pkg-config
找不到文件 gtk+-2.0.pc
:
requires pkg-config package gtk+-2.0-any, not found in the pkg-config database
故障排除步骤:
检查哪些目录
pkg-config
配置为查找.pc
文件:$ pkg-config --variable pc_path pkg-config
在我的系统上,
gtk+-2.0.pc
位于/usr/local/lib/pkgconfig
。我通过设置PKG_CONFIG_PATH
环境变量扩展了搜索路径:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:
测试
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 编译器的标志,告诉它如何 link 使用 gtk 库。
另一个查找 .pc 文件的技巧是使用
locate
命令(假设 locate 数据库已更新):locate '*.pc' | grep gtk
如果您使用的是 Homebrew,则可以通过键入以下内容来安装 gtk+3:
brew install gtk+3