2013-06-28 54 views
3

我在Linux上使用gtk2hs编写了一个小应用程序,它工作的很好。后来我尝试在Windows(xp,7)上运行相同的应用程序,但没有成功。我安装:在windows上gtk2hs无法运行

  1. Haskell的平台,为胜利
  2. gtk2hs所有在没有空格的路径中的一个包,并设置%PATH%到它的/ bin文件夹
  3. 小集团安装gtk2hs,编译工具
  4. 小集团安装GTK
  5. GHC --make -02 Main.hs

而且一切编译和链接OK。当试图运行该应用程序它说:

c:\wordtrend>Main 
(Main.exe:3228): GLib-GObject-CRITICAL **: gtype.c:2708: You forgot to call g_ty 
pe_init() 
(Main.exe:3228): GLib-GObject-CRITICAL **: gtype.c:2708: You forgot to call g_ty 
pe_init() 
(Main.exe:3228): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: as 
sertion `G_TYPE_IS_INTERFACE (interface_type)' failed 
(Main.exe:3228): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertio 
n `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed 
(Main.exe:3228): GLib-GObject-CRITICAL **: gtype.c:2708: You forgot to call g_ty 
pe_init() 
(Main.exe:3228): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertio 
n `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed 
(Main.exe:3228): GLib-GObject-CRITICAL **: gtype.c:2708: You forgot to call g_ty 
pe_init() 
(Main.exe:3228): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertio 
n `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed 
(Main.exe:3228): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OB 
JECT (object_type)' failed 
Segmentation fault/access violation in generated code 

我不知道从哪里开始。

回答

0

已解决:因此在gtk2hs:Windows上的initGUI函数之前必须没有命令。下面

守则适用于Linux,但编译和chrases在Windows上:

main :: IO() 
main = do 
    someCommand -- this command must come after initGUI to run 
    initGUI 
    ... 
    mainGUI 

所以不要initGUI命令之前提出的任何命令。