【发布时间】:2016-05-23 23:29:17
【问题描述】:
我想使用 Graphics.UI.Gtk.OpenGL
我有:
- OS X 10.11
- cabal 版本 1.22.0.0
- 已安装 gtk
我得到的错误:
Could not find module ‘Graphics.UI.Gtk.OpenGL’
Perhaps you meant
Graphics.UI.Gtk.Gdk.GC (from gtk-0.14.2)
Graphics.UI.Gtk.Cairo (from gtk-0.14.2)
Graphics.UI.Gtk.Gdk.Gdk (from gtk-0.14.2)
Use -v to see a list of the files searched for.`
我正在尝试使用以下方式安装 gtkglext:
cabal install gtkglext
然后我得到:
Resolving dependencies...
Configuring glib-0.12.5.4...
Building glib-0.12.5.4...
Failed to install glib-0.12.5.4
Build log ( /Users/Martin/.cabal/logs/glib-0.12.5.4.log ):
[1 of 2] Compiling SetupWrapper ( /var/folders/4p/yw17gzsd4554drxtxmbdd24c0000gn/T/glib-0.12.5.4-1526/glib- 0.12.5.4/SetupWrapper.hs, /var/folders/4p/yw17gzsd4554drxtxmbdd24c0000gn/T/glib-0.12.5.4-1526/glib-0.12.5.4/dist/setup/SetupWrapper.o )
[2 of 2] Compiling Main ( /var/folders/4p/yw17gzsd4554drxtxmbdd24c0000gn/T/glib-0.12.5.4-1526/glib-0.12.5.4/dist/setup/setup.hs, /var/folders/4p/yw17gzsd4554drxtxmbdd24c0000gn/T/glib-0.12.5.4-1526/glib-0.12.5.4/dist/setup/Main.o )
Linking /var/folders/4p/yw17gzsd4554drxtxmbdd24c0000gn/T/glib-0.12.5.4-1526/glib-0.12.5.4/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 glib-0.12.5.4...
Building glib-0.12.5.4...
Preprocessing library glib-0.12.5.4...
gtk2hsC2hs: Error in C header file.
/usr/include/dirent.h:150: (column 10) [FATAL]
\>>> Syntax error!
The symbol `^' does not fit here.
cabal: Error: some packages failed to install:
gio-0.12.5.3 depends on glib-0.12.5.4 which failed to install.
glib-0.12.5.4 failed during the building phase. The exception was:
ExitFailure 1
gtk-0.12.5.7 depends on glib-0.12.5.4 which failed to install.
gtkglext-0.12.5.0 depends on glib-0.12.5.4 which failed to install.
pango-0.12.5.3 depends on glib-0.12.5.4 which failed to install.`
所以我发现,gtkglext 有依赖 glib (>=0.12.5.0 &&
编辑:------------------------------ -------------------------
安装
cabal install gtkglext --with-gcc=gcc-4.8
产生另一个错误,即:
Graphics/UI/Gtk/General/Structs.hsc:660:3:
Couldn't match type ‘CInt’ with ‘Ptr a0’
Expected type: IO (Ptr a0)
Actual type: IO CInt
In the second argument of ‘($)’, namely
‘(\ (Drawable drawable)
-> withForeignPtr drawable gdk_x11_drawable_get_xid)
(toDrawable d)’
In the expression:
liftM toNativeWindowId
$ (\ (Drawable drawable)
-> withForeignPtr drawable gdk_x11_drawable_get_xid)
(toDrawable d)
谷歌搜索很少会产生: https://github.com/gtk2hs/gtk2hs/issues/27
但我不知道他是如何“完全禁用 drawableGetID 并且这似乎工作正常”。
任何帮助都会很有用。
【问题讨论】:
-
gtkglexton Hackage 最后一次上传是在 2013 年,所以它可能已经过时了。您可以尝试仅编辑 cabal 文件并删除有问题的边界限制并查看它是否有效。