From: Paulo T. <tanimoto@u.arizona.edu> - 2007-07-11 19:35:04
|
Dear all, I tried Gtk2Hs under wine and in the past it did work with no sweat. However, I had to reinstall wine and now things don't compile anymore. Can anybody make any sense of these error messages? I'm trying to compile the Hello World example. I get this (mis)behavior in both GHC 6.6 with Gtk2Hs 0.9.11 and GHC 6.6.1 with Gtk2Hs 0.9.12 (rc). Thanks, Paulo $ wine ghc --make World Linking World.exe ... C:\Program Files\Gtk2Hs/libHSgtk.a(Object__4.o)(.text+0x96):ghc292_0.hc: undefined reference to `g_object_unref' C:\Program Files\Gtk2Hs/libHSgtk.a(Object__4.o)(.text+0x2af):ghc292_0.hc: undefined reference to `g_object_ref_sink' C:\Program Files\Gtk2Hs/libHSgtk.a(hsgthread.o)(.text+0x24): In function `gtk2hs_threads_initialise': gtk/Graphics/UI/Gtk/General/hsgthread.c:141:0: undefined reference to `g_thread_init' C:\Program Files\Gtk2Hs/libHSglib.a(Signals__1.o)(.text+0x144):ghc2684_0.hc: undefined reference to `g_signal_connect_closure' C:\Program Files\Gtk2Hs/libHSglib.a(Signals__1.o)(.text+0x1e0):ghc2684_0.hc: undefined reference to `g_signal_connect_closure' C:\Program Files\Gtk2Hs/libHSglib.a(Properties__3.o)(.text+0xdf):ghc4076_0.hc: undefined reference to `g_object_set_property' C:\Program Files\Gtk2Hs/libHSglib.a(Properties__3.o)(.text+0x182):ghc4076_0.hc: undefined reference to `g_value_init' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x55): In function `gtk2hs_closure_new': glib/System/Glib/hsgclosure.c:135:0: undefined reference to `g_closure_new_simple' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x6e):glib/System/Glib/hsgclosure.c:135: undefined reference to `g_closure_add_invalidate_notifier' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x7f):glib/System/Glib/hsgclosure.c:135: undefined reference to `g_closure_set_marshal' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0xf2): In function `gtk2hs_closure_marshal': glib/System/Glib/hsgclosure.c:77:0: undefined reference to `g_type_fundamental' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x114):glib/System/Glib/hsgclosure.c:77: undefined reference to `g_type_is_a' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x12b):glib/System/Glib/hsgclosure.c:77: undefined reference to `g_type_name' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x148):glib/System/Glib/hsgclosure.c:90: undefined reference to `g_log' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x1c1):glib/System/Glib/hsgclosure.c:1132: undefined reference to `g_type_fundamental' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x1d9):glib/System/Glib/hsgclosure.c:1138: undefined reference to `g_value_get_object' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x206):glib/System/Glib/hsgclosure.c:98: undefined reference to `g_value_set_pointer' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x224):glib/System/Glib/hsgclosure.c:1171: undefined reference to `g_value_get_boxed' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x22e):glib/System/Glib/hsgclosure.c:1173: undefined reference to `g_value_get_char' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x24c):glib/System/Glib/hsgclosure.c:118: undefined reference to `g_value_get_uchar' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x259):glib/System/Glib/hsgclosure.c:210: undefined reference to `g_value_get_boolean' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x274):glib/System/Glib/hsgclosure.c:199: undefined reference to `g_value_get_int' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x28f):glib/System/Glib/hsgclosure.c:265: undefined reference to `g_value_get_uint' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x2aa):glib/System/Glib/hsgclosure.c:126: undefined reference to `g_value_get_long' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x2b4):glib/System/Glib/hsgclosure.c:1331: undefined reference to `g_value_get_ulong' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x2be):glib/System/Glib/hsgclosure.c:1336: undefined reference to `g_value_get_enum' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x2c8):glib/System/Glib/hsgclosure.c:165: undefined reference to `g_value_get_enum' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x2d2):glib/System/Glib/hsgclosure.c:167: undefined reference to `g_value_get_float' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x2ed):glib/System/Glib/hsgclosure.c:1366: undefined reference to `g_value_get_double' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x308):glib/System/Glib/hsgclosure.c:199: undefined reference to `g_value_get_string' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x315):glib/System/Glib/hsgclosure.c:175: undefined reference to `g_value_get_pointer' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x330):glib/System/Glib/hsgclosure.c:177: undefined reference to `g_type_is_a' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x341):glib/System/Glib/hsgclosure.c:175: undefined reference to `g_type_name' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x363):glib/System/Glib/hsgclosure.c:185: undefined reference to `g_log' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x38a):glib/System/Glib/hsgclosure.c:1450: undefined reference to `g_value_set_object' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x3a9):glib/System/Glib/hsgclosure.c:1463: undefined reference to `g_value_set_char' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x3c8):glib/System/Glib/hsgclosure.c:1480: undefined reference to `g_value_set_char' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x3e4):glib/System/Glib/hsgclosure.c:1492: undefined reference to `g_value_set_boolean' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x400):glib/System/Glib/hsgclosure.c:1498: undefined reference to `g_value_set_int' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x41c):glib/System/Glib/hsgclosure.c:1518: undefined reference to `g_value_set_uint' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x438):glib/System/Glib/hsgclosure.c:1528: undefined reference to `g_value_set_long' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x454):glib/System/Glib/hsgclosure.c:1538: undefined reference to `g_value_set_ulong' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x470):glib/System/Glib/hsgclosure.c:229: undefined reference to `g_value_set_enum' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x48c):glib/System/Glib/hsgclosure.c:232: undefined reference to `g_value_set_flags' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x4a8):glib/System/Glib/hsgclosure.c:235: undefined reference to `g_value_set_float' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x4c4):glib/System/Glib/hsgclosure.c:238: undefined reference to `g_value_set_double' C:\Program Files\Gtk2Hs/libHSglib.a(hsgclosure.o)(.text+0x4e0):glib/System/Glib/hsgclosure.c:241: undefined reference to `g_value_set_string' C:\Program Files\Gtk2Hs/libHSglib.a(GValueTypes__1.o)(.text+0x56):ghc3948_0.hc: undefined reference to `g_value_set_object' C:\Program Files\Gtk2Hs/libHSglib.a(GValue__1.o)(.text+0x43):ghc2808_0.hc: undefined reference to `g_value_unset' collect2: ld returned 1 exit status |
From: Axel S. <A....@ke...> - 2007-07-12 13:22:13
|
Paulo, On Jul 11, 2007, at 20:35, Paulo Tanimoto wrote: > Dear all, > > I tried Gtk2Hs under wine and in the past it did work with no sweat. > However, I had to reinstall wine and now things don't compile anymore. > Can anybody make any sense of these error messages? I'm trying to > compile the Hello World example. > > I get this (mis)behavior in both GHC 6.6 with Gtk2Hs 0.9.11 and GHC > 6.6.1 with Gtk2Hs 0.9.12 (rc). > > Thanks, > > Paulo > > > > $ wine ghc --make World > Linking World.exe ... > C:\Program Files\Gtk2Hs/libHSgtk.a(Object__4.o)(.text > +0x96):ghc292_0.hc: > undefined reference to `g_object_unref' > C:\Program Files\Gtk2Hs/libHSgtk.a(Object__4.o)(.text > +0x2af):ghc292_0.hc: > undefined reference to `g_object_ref_sink' > This looks like you've either deleted the glib library or that you've done something else to make ghc fail to find libHSglib.a . Does this file exist? Does it get linked in (use ghc -v --make World)? Axel. |
From: Paulo T. <tanimoto@u.arizona.edu> - 2007-07-12 18:00:32
|
Axel, Thanks for the help. I'm trying this on a fresh install of GHC and Gtk2hs on wine, so I wonder if the issue is that something is not getting registered. I confess I have little experience with wine. This file does exist: ~/.wine/drive_c/Program Files/Gtk2Hs/libHSglib.a Now here's something very interesting. I tried to load the program from ghci and it worked. I do get some error messages, but the window appears. One problem is that the font is huge, but let's focus on priorities now. $ wine ghci Prelude> :l World.hs Ok, modules loaded: Main. Prelude Main> :main Loading package mtl-1.0.1 ... linking ... done. Loading package glib-0.9.11.3 ... linking ... done. Loading package cairo-0.9.11.3 ... linking ... done. Loading package gtk-0.9.11.3 ... linking ... done. err:ole:CoGetClassObject class {4955dd33-b159-11d0-8fcf-00aa006bcc59} not registered err:ole:CoGetClassObject class {4955dd33-b159-11d0-8fcf-00aa006bcc59} not registered err:ole:create_server class {4955dd33-b159-11d0-8fcf-00aa006bcc59} not registered err:ole:CoGetClassObject no class object {4955dd33-b159-11d0-8fcf-00aa006bcc59} could be created for context 0x7 fixme:font:ExtTextOutW flags ETO_NUMERICSLOCAL | ETO_NUMERICSLATIN | ETO_PDY unimplemented Below I'm presenting the output of ghc with the verbose flag, as you suggested. Paulo Here's the output when I run ghc with verbose mode (I'm not repeating the last part, which is the same as before). $ wine ghc -v --make World Glasgow Haskell Compiler, Version 6.6.1, for Haskell 98, compiled by GHC version 6.6.1 Using package config file: C:\ghc\ghc-6.6.1\package.conf wired-in package base mapped to base-2.1.1 wired-in package rts mapped to rts-1.0 wired-in package haskell98 mapped to haskell98-1.0 wired-in package template-haskell mapped to template-haskell-2.1 Hsc static flags: -static *** Chasing dependencies: Chasing modules from: World.hs Stable obj: [] Stable BCO: [] compile: input file World.hs Created temporary directory: C:/windows/temp/ghc8_0 *** Checking old interface for main:Main: [1 of 1] Skipping Main ( World.hs, World.o ) *** Deleting temp files: Deleting: C:/windows/temp/ghc8_0/ghc8_0.s Warning: deleting non-existent C:/windows/temp/ghc8_0/ghc8_0.s Upsweep completely successful. *** Deleting temp files: Deleting: link: linkables are ... LinkableM (Wed Jul 4 21:48:39 2007) main:Main [DotO World.o] Linking World.exe ... *** Linker: C:\ghc\ghc-6.6.1\gcc -BC:\ghc\ghc-6.6.1\gcc-lib/ -v -o World.exe -DDONT_WANT_WIN32_DLL_SUPPORT World.o -LC:\Program Files\Gtk2Hs -LC:\Program Files\Gtk2Hs\lib -LC:/ghc/ghc-6.6.1 -LC:/ghc/ghc-6.6.1\gcc-lib -lHSgtk -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgthread-2.0 -lHScairo -lcairo -lHSglib -lgobject-2.0 -lglib-2.0 -lintl -liconv -lHSmtl -lHSbase -lHSbase_cbits -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 -lHSrts -lm -lgmp -lwsock32 -u _base_GHCziBase_Izh_static_info -u _base_GHCziBase_Czh_static_info -u _base_GHCziFloat_Fzh_static_info -u _base_GHCziFloat_Dzh_static_info -u _base_GHCziPtr_Ptr_static_info -u _base_GHCziWord_Wzh_static_info -u _base_GHCziInt_I8zh_static_info -u _base_GHCziInt_I16zh_static_info -u _base_GHCziInt_I32zh_static_info -u _base_GHCziInt_I64zh_static_info -u _base_GHCziWord_W8zh_static_info -u _base_GHCziWord_W16zh_static_info -u _base_GHCziWord_W32zh_static_info -u _base_GHCziWord_W64zh_static_info -u _base_GHCziStable_StablePtr_static_info -u _base_GHCziBase_Izh_con_info -u _base_GHCziBase_Czh_con_info -u _base_GHCziFloat_Fzh_con_info -u _base_GHCziFloat_Dzh_con_info -u _base_GHCziPtr_Ptr_con_info -u _base_GHCziPtr_FunPtr_con_info -u _base_GHCziStable_StablePtr_con_info -u _base_GHCziBase_False_closure -u _base_GHCziBase_True_closure -u _base_GHCziPack_unpackCString_closure -u _base_GHCziIOBase_stackOverflow_closure -u _base_GHCziIOBase_heapOverflow_closure -u _base_GHCziIOBase_NonTermination_closure -u _base_GHCziIOBase_BlockedOnDeadMVar_closure -u _base_GHCziIOBase_BlockedIndefinitely_closure -u _base_GHCziIOBase_Deadlock_closure -u _base_GHCziIOBase_NestedAtomically_closure -u _base_GHCziWeak_runFinalizzerBatch_closure -u _base_GHCziConc_ensureIOManagerIsRunning_closure Reading specs from C:/ghc/ghc-6.6.1/gcc-lib/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.2 (mingw-special) C:/ghc/ghc-6.6.1/gcc-lib/collect2.exe -Bdynamic -o World.exe -u _base_GHCziBase_Izh_static_info -u _base_GHCziBase_Czh_static_info -u _base_GHCziFloat_Fzh_static_info -u _base_GHCziFloat_Dzh_static_info -u _base_GHCziPtr_Ptr_static_info -u _base_GHCziWord_Wzh_static_info -u _base_GHCziInt_I8zh_static_info -u _base_GHCziInt_I16zh_static_info -u _base_GHCziInt_I32zh_static_info -u _base_GHCziInt_I64zh_static_info -u _base_GHCziWord_W8zh_static_info -u _base_GHCziWord_W16zh_static_info -u _base_GHCziWord_W32zh_static_info -u _base_GHCziWord_W64zh_static_info -u _base_GHCziStable_StablePtr_static_info -u _base_GHCziBase_Izh_con_info -u _base_GHCziBase_Czh_con_info -u _base_GHCziFloat_Fzh_con_info -u _base_GHCziFloat_Dzh_con_info -u _base_GHCziPtr_Ptr_con_info -u _base_GHCziPtr_FunPtr_con_info -u _base_GHCziStable_StablePtr_con_info -u _base_GHCziBase_False_closure -u _base_GHCziBase_True_closure -u _base_GHCziPack_unpackCString_closure -u _base_GHCziIOBase_stackOverflow_closure -u _base_GHCziIOBase_heapOverflow_closure -u _base_GHCziIOBase_NonTermination_closure -u _base_GHCziIOBase_BlockedOnDeadMVar_closure -u _base_GHCziIOBase_BlockedIndefinitely_closure -u _base_GHCziIOBase_Deadlock_closure -u _base_GHCziIOBase_NestedAtomically_closure -u _base_GHCziWeak_runFinalizzerBatch_closure -u _base_GHCziConc_ensureIOManagerIsRunning_closure C:/ghc/ghc-6.6.1/gcc-lib/crt2.o C:/ghc/ghc-6.6.1/gcc-lib/crtbegin.o -LC:\Program Files\Gtk2Hs -LC:\Program Files\Gtk2Hs\lib -LC:/ghc/ghc-6.6.1 -LC:/ghc/ghc-6.6.1\gcc-lib -LC:/ghc/ghc-6.6.1/gcc-lib World.o -lHSgtk -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgthread-2.0 -lHScairo -lcairo -lHSglib -lgobject-2.0 -lglib-2.0 -lintl -liconv -lHSmtl -lHSbase -lHSbase_cbits -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 -lHSrts -lm -lgmp -lwsock32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt C:/ghc/ghc-6.6.1/gcc-lib/crtend.o C:\Program Files\Gtk2Hs/libHSgtk.a(Object__4.o)(.text+0x96):ghc292_0.hc: undefined reference to `g_object_unref' [...] |
From: Duncan C. <dun...@wo...> - 2007-07-13 00:10:41
|
On Wed, 2007-07-11 at 19:35 +0000, Paulo Tanimoto wrote: > Dear all, > > I tried Gtk2Hs under wine and in the past it did work with no sweat. > However, I had to reinstall wine and now things don't compile anymore. > Can anybody make any sense of these error messages? I'm trying to > compile the Hello World example. Is it a silly question for me to ask why you would want to run Gtk2Hs under Wine on Linux when it works perfectly well natively? :-) As Axel says, it looks like it's not linking to glb-2.0.lib. All the named undefined symbols exist in glb-2.0.lib. Use ghc -v to get verbose output and see how ghc is calling gcc to link things and if glib-2.0 is there. By fiddling with the order and presence of various -l link flags you might discover something interesting. Duncan |
From: Paulo T. <tanimoto@u.arizona.edu> - 2007-07-13 00:48:15
|
Duncan, It's not a silly question at all, I should have explained my plans earlier. Here's why: I only have Linux, but I want to compile a program for a Windows box. Indeed, Gtk2Hs works flawlessly on my Ubuntu installation -- and I suspect that you're responsible for the package. So, using Wine seemed to be a good idea for creating binaries. http://www.haskell.org/haskellwiki/GHC_under_WINE Ok, I will read carefully the output from verbose mode. This is not a big deal for me, but I do believe that some developers could benefit from having it working. Thanks for the great work, Paulo On 7/13/07, Duncan Coutts <dun...@wo...> wrote: > On Wed, 2007-07-11 at 19:35 +0000, Paulo Tanimoto wrote: > > Dear all, > > > > I tried Gtk2Hs under wine and in the past it did work with no sweat. > > However, I had to reinstall wine and now things don't compile anymore. > > Can anybody make any sense of these error messages? I'm trying to > > compile the Hello World example. > > Is it a silly question for me to ask why you would want to run Gtk2Hs > under Wine on Linux when it works perfectly well natively? :-) > > As Axel says, it looks like it's not linking to glb-2.0.lib. All the > named undefined symbols exist in glb-2.0.lib. Use ghc -v to get verbose > output and see how ghc is calling gcc to link things and if glib-2.0 is > there. By fiddling with the order and presence of various -l link flags > you might discover something interesting. > > Duncan > > |
From: Neil M. <ndm...@gm...> - 2007-07-13 00:54:35
|
Hi Paulo, > So, using Wine seemed to be a good idea for creating binaries. > http://www.haskell.org/haskellwiki/GHC_under_WINE That sounds quite sensible :-) > Ok, I will read carefully the output from verbose mode. This is not a > big deal for me, but I do believe that some developers could benefit > from having it working. Does your program build using Cabal, and is just Haskell plus Gtk2hs? If so, a Windows developer shouldn't have much hassle building your program. Its even feasible that one day hackage might automatically make such builds for you. Thanks Neil |
From: Paulo T. <tanimoto@u.arizona.edu> - 2007-07-13 03:25:00
|
Hello Neil, > Does your program build using Cabal, and is just Haskell plus Gtk2hs? > If so, a Windows developer shouldn't have much hassle building your > program. Its even feasible that one day hackage might automatically > make such builds for you. That's a good point, I'm using Cabal indeed. But right now, all I wanted was to build a sort of one-shot program and give the binary to a friend. What I can do is find a computer with Windows, and install GHC and Gtk2Hs. Thanks for the insight, I'll keep that in mind. Paulo |
From: Duncan C. <dun...@wo...> - 2007-07-13 01:45:10
|
On Fri, 2007-07-13 at 00:48 +0000, Paulo Tanimoto wrote: > Duncan, > > It's not a silly question at all, I should have explained my plans > earlier. Here's why: I only have Linux, but I want to compile a > program for a Windows box. Indeed, Gtk2Hs works flawlessly on my > Ubuntu installation -- and I suspect that you're responsible for the > package. Actually I do the Gentoo package :-) (as well as the Win32 installer and other hacking) > So, using Wine seemed to be a good idea for creating binaries. > http://www.haskell.org/haskellwiki/GHC_under_WINE > > Ok, I will read carefully the output from verbose mode. This is not a > big deal for me, but I do believe that some developers could benefit > from having it working. Another alternative is to cross-compile for Win32 using mingw on Linux. I know that Gentoo has mingw packages, Debian/Ubuntu probably do too. Duncan |
From: Paulo T. <tanimoto@u.arizona.edu> - 2007-07-13 03:33:51
|
Duncan, > Actually I do the Gentoo package :-) > (as well as the Win32 installer and other hacking) Ah, I see! I probably thought that because I may have seen a discussion with you, regarding the Debian package -- taking a long time to install. > Another alternative is to cross-compile for Win32 using mingw on Linux. > I know that Gentoo has mingw packages, Debian/Ubuntu probably do too. I never thought of that, I will give that a try. mingw32 is in the repositories, as you pointed out. I have to say, this is a great community. You guys have been very helpful, thank you very much. Paulo |
From: Axel S. <A....@ke...> - 2007-07-13 09:08:03
|
Paulo, (Duncan?!), On Jul 12, 2007, at 19:00, Paulo Tanimoto wrote: > Axel, > > Thanks for the help. I'm trying this on a fresh install of GHC and > Gtk2hs on wine, so I wonder if the issue is that something is not > getting registered. I confess I have little experience with wine. > > This file does exist: > ~/.wine/drive_c/Program Files/Gtk2Hs/libHSglib.a I noticed that the command line for the linker includes both Gtk2Hs/ and Gtk2Hs/lib. Is there an older version of libHSglib.a under /lib? Duncan, has the location of the libraries changed on Windows? Axel. > Now here's something very interesting. I tried to load the program > from ghci and it worked. I do get some error messages, but the window > appears. One problem is that the font is huge, but let's focus on > priorities now. > > $ wine ghci > Prelude> :l World.hs > Ok, modules loaded: Main. > Prelude Main> :main > Loading package mtl-1.0.1 ... linking ... done. > Loading package glib-0.9.11.3 ... linking ... done. > Loading package cairo-0.9.11.3 ... linking ... done. > Loading package gtk-0.9.11.3 ... linking ... done. > err:ole:CoGetClassObject class {4955dd33-b159-11d0-8fcf-00aa006bcc59} > not registered > err:ole:CoGetClassObject class {4955dd33-b159-11d0-8fcf-00aa006bcc59} > not registered > err:ole:create_server class {4955dd33-b159-11d0-8fcf-00aa006bcc59} not > registered > err:ole:CoGetClassObject no class object > {4955dd33-b159-11d0-8fcf-00aa006bcc59} could be created for context > 0x7 > fixme:font:ExtTextOutW flags ETO_NUMERICSLOCAL | ETO_NUMERICSLATIN | > ETO_PDY unimplemented > > > Below I'm presenting the output of ghc with the verbose flag, as > you suggested. > > Paulo > > > Here's the output when I run ghc with verbose mode (I'm not repeating > the last part, which is the same as before). > > $ wine ghc -v --make World > Glasgow Haskell Compiler, Version 6.6.1, for Haskell 98, compiled by > GHC version 6.6.1 > Using package config file: C:\ghc\ghc-6.6.1\package.conf > wired-in package base mapped to base-2.1.1 > wired-in package rts mapped to rts-1.0 > wired-in package haskell98 mapped to haskell98-1.0 > wired-in package template-haskell mapped to template-haskell-2.1 > Hsc static flags: -static > *** Chasing dependencies: > Chasing modules from: World.hs > Stable obj: [] > Stable BCO: [] > compile: input file World.hs > Created temporary directory: C:/windows/temp/ghc8_0 > *** Checking old interface for main:Main: > [1 of 1] Skipping Main ( World.hs, World.o ) > *** Deleting temp files: > Deleting: C:/windows/temp/ghc8_0/ghc8_0.s > Warning: deleting non-existent C:/windows/temp/ghc8_0/ghc8_0.s > Upsweep completely successful. > *** Deleting temp files: > Deleting: > link: linkables are ... > LinkableM (Wed Jul 4 21:48:39 2007) main:Main > [DotO World.o] > Linking World.exe ... > *** Linker: > C:\ghc\ghc-6.6.1\gcc -BC:\ghc\ghc-6.6.1\gcc-lib/ -v -o World.exe > -DDONT_WANT_WIN32_DLL_SUPPORT World.o -LC:\Program Files\Gtk2Hs > -LC:\Program Files\Gtk2Hs\lib -LC:/ghc/ghc-6.6.1 > -LC:/ghc/ghc-6.6.1\gcc-lib -lHSgtk -lgtk-win32-2.0 -lgdk-win32-2.0 > -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lpangocairo-1.0 > -lpango-1.0 -lcairo -lgmodule-2.0 -lgthread-2.0 -lHScairo -lcairo > -lHSglib -lgobject-2.0 -lglib-2.0 -lintl -liconv -lHSmtl -lHSbase > -lHSbase_cbits -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 > -lHSrts -lm -lgmp -lwsock32 -u _base_GHCziBase_Izh_static_info -u > _base_GHCziBase_Czh_static_info -u _base_GHCziFloat_Fzh_static_info -u > _base_GHCziFloat_Dzh_static_info -u _base_GHCziPtr_Ptr_static_info -u > _base_GHCziWord_Wzh_static_info -u _base_GHCziInt_I8zh_static_info -u > _base_GHCziInt_I16zh_static_info -u _base_GHCziInt_I32zh_static_info > -u _base_GHCziInt_I64zh_static_info -u > _base_GHCziWord_W8zh_static_info -u _base_GHCziWord_W16zh_static_info > -u _base_GHCziWord_W32zh_static_info -u > _base_GHCziWord_W64zh_static_info -u > _base_GHCziStable_StablePtr_static_info -u > _base_GHCziBase_Izh_con_info -u _base_GHCziBase_Czh_con_info -u > _base_GHCziFloat_Fzh_con_info -u _base_GHCziFloat_Dzh_con_info -u > _base_GHCziPtr_Ptr_con_info -u _base_GHCziPtr_FunPtr_con_info -u > _base_GHCziStable_StablePtr_con_info -u _base_GHCziBase_False_closure > -u _base_GHCziBase_True_closure -u > _base_GHCziPack_unpackCString_closure -u > _base_GHCziIOBase_stackOverflow_closure -u > _base_GHCziIOBase_heapOverflow_closure -u > _base_GHCziIOBase_NonTermination_closure -u > _base_GHCziIOBase_BlockedOnDeadMVar_closure -u > _base_GHCziIOBase_BlockedIndefinitely_closure -u > _base_GHCziIOBase_Deadlock_closure -u > _base_GHCziIOBase_NestedAtomically_closure -u > _base_GHCziWeak_runFinalizzerBatch_closure -u > _base_GHCziConc_ensureIOManagerIsRunning_closure > Reading specs from C:/ghc/ghc-6.6.1/gcc-lib/specs > Configured with: ../gcc/configure --with-gcc --with-gnu-ld > --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw > --enable-threads --disable-nls > --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry > --disable-shared --enable-sjlj-exceptions --enable-libgcj > --disable-java-awt --without-x --enable-java-gc=boehm > --disable-libgcj-debug --enable-interpreter > --enable-hash-synchronization --enable-libstdcxx-debug > Thread model: win32 > gcc version 3.4.2 (mingw-special) > C:/ghc/ghc-6.6.1/gcc-lib/collect2.exe -Bdynamic -o World.exe -u > _base_GHCziBase_Izh_static_info -u _base_GHCziBase_Czh_static_info -u > _base_GHCziFloat_Fzh_static_info -u _base_GHCziFloat_Dzh_static_info > -u _base_GHCziPtr_Ptr_static_info -u _base_GHCziWord_Wzh_static_info > -u _base_GHCziInt_I8zh_static_info -u _base_GHCziInt_I16zh_static_info > -u _base_GHCziInt_I32zh_static_info -u > _base_GHCziInt_I64zh_static_info -u _base_GHCziWord_W8zh_static_info > -u _base_GHCziWord_W16zh_static_info -u > _base_GHCziWord_W32zh_static_info -u _base_GHCziWord_W64zh_static_info > -u _base_GHCziStable_StablePtr_static_info -u > _base_GHCziBase_Izh_con_info -u _base_GHCziBase_Czh_con_info -u > _base_GHCziFloat_Fzh_con_info -u _base_GHCziFloat_Dzh_con_info -u > _base_GHCziPtr_Ptr_con_info -u _base_GHCziPtr_FunPtr_con_info -u > _base_GHCziStable_StablePtr_con_info -u _base_GHCziBase_False_closure > -u _base_GHCziBase_True_closure -u > _base_GHCziPack_unpackCString_closure -u > _base_GHCziIOBase_stackOverflow_closure -u > _base_GHCziIOBase_heapOverflow_closure -u > _base_GHCziIOBase_NonTermination_closure -u > _base_GHCziIOBase_BlockedOnDeadMVar_closure -u > _base_GHCziIOBase_BlockedIndefinitely_closure -u > _base_GHCziIOBase_Deadlock_closure -u > _base_GHCziIOBase_NestedAtomically_closure -u > _base_GHCziWeak_runFinalizzerBatch_closure -u > _base_GHCziConc_ensureIOManagerIsRunning_closure > C:/ghc/ghc-6.6.1/gcc-lib/crt2.o C:/ghc/ghc-6.6.1/gcc-lib/crtbegin.o > -LC:\Program Files\Gtk2Hs -LC:\Program Files\Gtk2Hs\lib > -LC:/ghc/ghc-6.6.1 -LC:/ghc/ghc-6.6.1\gcc-lib > -LC:/ghc/ghc-6.6.1/gcc-lib World.o -lHSgtk -lgtk-win32-2.0 > -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 > -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgthread-2.0 > -lHScairo -lcairo -lHSglib -lgobject-2.0 -lglib-2.0 -lintl -liconv > -lHSmtl -lHSbase -lHSbase_cbits -lwsock32 -lmsvcrt -lkernel32 -luser32 > -lshell32 -lHSrts -lm -lgmp -lwsock32 -lmingw32 -lgcc -lmoldname > -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 > -lgcc -lmoldname -lmingwex -lmsvcrt C:/ghc/ghc-6.6.1/gcc-lib/crtend.o > C:\Program Files\Gtk2Hs/libHSgtk.a(Object__4.o)(.text > +0x96):ghc292_0.hc: > undefined reference to `g_object_unref' > [...] > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Gtk2hs-users mailing list > Gtk...@li... > https://lists.sourceforge.net/lists/listinfo/gtk2hs-users |
From: Duncan C. <dun...@wo...> - 2007-07-13 16:32:47
|
On Fri, 2007-07-13 at 10:06 +0100, Axel Simon wrote: > Paulo, (Duncan?!), > > On Jul 12, 2007, at 19:00, Paulo Tanimoto wrote: > > > Axel, > > > > Thanks for the help. I'm trying this on a fresh install of GHC and > > Gtk2hs on wine, so I wonder if the issue is that something is not > > getting registered. I confess I have little experience with wine. > > > > This file does exist: > > ~/.wine/drive_c/Program Files/Gtk2Hs/libHSglib.a > > I noticed that the command line for the linker includes both Gtk2Hs/ > and Gtk2Hs/lib. Is there an older version of libHSglib.a under /lib? > Duncan, has the location of the libraries changed on Windows? Gtk2Hs/ is where the Haskell package libs live, like libHSglib.a Gtk2Hs/lib/ is where the C/Gtk libs livs, like glib-2.0.lib It's unlikely but possible there could be stray files. Should be easy to check (though I don't have my win32 box handy to check myself). Duncan |
From: Paulo T. <tanimoto@u.arizona.edu> - 2007-07-13 17:31:32
|
Axel, Duncan, I don't believe it's a problem in Gtk2Hs anymore, because of this little experiment. I installed GHC and Gtk2Hs on a real Windows box. I tested it and everything works. I transferred the folders to my wine directory. Finally I tried to compile with wine, but I get exactly the same error as before. I also tried to put libHSglib.a in different places to see if GHC was actually using it, and it was. By the way, one of the times I ran it, I noticed that inside libHSglib.a there are references to paths like (I'm omitting parts for privacy): D:\...\home\dcoutts\build\... I assume that's Duncan's directory, but is that to be expected? Plus, I've read several complaints about compiling things under wine, specifically GTK. It appeared to be a good idea at first, but it looks like it's not. It may be easier to do what Duncan said: either try mingw32 or find a computer with Windows. Thanks again, Paulo |