Mail Archives: cygwin/2004/01/11/19:07:36
Hallo dominix,
Am Sonntag, 11. Januar 2004 um 20:28 schriebst du:
> hi everybody.
> when trying to install Gtk-perl on cygwin [1.5.5] WinNT5 (XP) with
> perl-5.8.2
> I got errors regarding specific symbols not found, and I'm not able
> to build ImlibImage and the build process stop.
> I'm stuck there. Any advice, recomendation, tip, fix, (blame ?) welcome
> thanks for your time and attention.
> #######################################################3
> cpan Gtk
> ...
> rm -f blib/arch/auto/Gtk/Gdk/ImlibImage/ImlibImage.dll
> LD_RUN_PATH="" ld2 -s -L/usr/local/lib xs/GdkImlib.o -o
> blib/arch/auto/Gtk/Gdk/ImlibImage/ImlibImage.dll
> /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/libperl.dll.a -L/usr/X11
> R6/lib -L/opt/gnome/lib -lgthread -lgdk_imlib -lgtk -lgdk -lgmodule -lglib -
> lintl -lXext -lX11
> gcc -shared -o
> ImlibImage.dll -Wl,--out-implib=libImlibImage.dll.a -Wl,--export-all-symbols
> -Wl,--enable-auto-import -Wl,--stack,8388608 \
> -s -L/usr/local/lib xs/GdkImlib.o
> /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/libperl.dll.a -L/usr/X11
> R6/lib -L/opt/gnome/lib -lgthread -lgdk_imlib -lgtk -lgdk -lgmodule -lglib -
> lintl -lXext -lX11
> Creating library file: libImlibImage.dll.a
> xs/GdkImlib.o(.text+0x38):GdkImlib.c: undefined reference to `_newSVMiscRef'
> xs/GdkImlib.o(.text+0x59):GdkImlib.c: undefined reference to `_SvMiscRef'
> xs/GdkImlib.o(.text+0x301):GdkImlib.c: undefined reference to
> `_pgtk_alloc_temp'
> xs/GdkImlib.o(.text+0x974):GdkImlib.c: undefined reference to
> `_pgtk_alloc_temp'
> xs/GdkImlib.o(.text+0xfcb):GdkImlib.c: undefined reference to `_SvGdkPixmap'
> xs/GdkImlib.o(.text+0x122b):GdkImlib.c: undefined reference to
> `_SvGdkBitmap'
> xs/GdkImlib.o(.text+0x13a3):GdkImlib.c: undefined reference to
> `_pgtk_did_we_init_gtk'
> xs/GdkImlib.o(.text+0x327e):GdkImlib.c: undefined reference to
> `_newSVGdkPixmap'
> xs/GdkImlib.o(.text+0x355d):GdkImlib.c: undefined reference to
> `_newSVGdkBitmap'
> xs/GdkImlib.o(.text+0x383e):GdkImlib.c: undefined reference to
> `_newSVGdkPixmap'
> xs/GdkImlib.o(.text+0x3b02):GdkImlib.c: undefined reference to
> `_newSVGdkBitmap'
> xs/GdkImlib.o(.text+0x3e06):GdkImlib.c: undefined reference to
> `_UnregisterMisc'
> xs/GdkImlib.o(.text+0x4063):GdkImlib.c: undefined reference to
> `_UnregisterMisc'
> xs/GdkImlib.o(.text+0x42b5):GdkImlib.c: undefined reference to
> `_UnregisterMisc'
> xs/GdkImlib.o(.text+0x6419):GdkImlib.c: undefined reference to
> `_newSVGdkPixmap'
> xs/GdkImlib.o(.text+0x64bc):GdkImlib.c: undefined reference to
> `_newSVGdkBitmap'
> xs/GdkImlib.o(.text+0x9518):GdkImlib.c: undefined reference to
> `_SvGdkWindow'
> xs/GdkImlib.o(.text+0x9b3d):GdkImlib.c: undefined reference to
> `_SvGdkWindow'
> xs/GdkImlib.o(.text+0xa184):GdkImlib.c: undefined reference to
> `_SvGdkWindow'
> xs/GdkImlib.o(.text+0xb1a9):GdkImlib.c: undefined reference to
> `_SvGdkBitmap'
> xs/GdkImlib.o(.text+0xb58d):GdkImlib.c: undefined reference to
> `_SvGdkWindow'
> xs/GdkImlib.o(.text+0xd417):GdkImlib.c: undefined reference to
> `_newSVGdkVisual'
> xs/GdkImlib.o(.text+0xd679):GdkImlib.c: undefined reference to
> `_newSVGdkColormap'
> xs/GdkImlib.o(.text+0xe217):GdkImlib.c: undefined reference to
> `_newSVGdkPixmap'
> xs/GdkImlib.o(.text+0xe2ba):GdkImlib.c: undefined reference to
> `_newSVGdkBitmap'
> collect2: ld returned 1 exit status
> perlld: *** system() failed to execute
Ok, what I found:
http://www.occamstoothbrush.com/perl/gtk-perl-cygwin-howto.txt
from a thread on the gtk-perl list and here the story continues:
http://mail.gnome.org/archives/gtk-perl-list/2001-November/msg00061.html
I guess you have all the prerequisites installed (that is about all of
the gnome desktop (http://cygnome.sf.net/ , Berkeley DB 3.1.17,
Libexpat, and the XML::Parser & XML::Writer perl modules)?
The interesting part at the website from the first link is part 4 (I
did the same without specifying `--without-gnomeprint' because I have
it here and it works too), everytime I got an error with these
undefined refs I opened the current Makefile, appended
`-L../blib/arch/auto/Gtk -lGtk' to the OTHERLDFLAGS library list
(as suggested in the thread from the second link) run make again and
voila, it works for GdkImlib.
The same for the second module, but now I have some more undefined
references, e.g. `_gtk_type_check_object_cast'. This is defined in
libgtk:
$ nm libgtk.dll.a | grep _gtk_type_check_object_cast
00000000 I __imp__gtk_type_check_object_cast
00000000 T _gtk_type_check_object_cast
But the linkline is including libgtk and libGtk, hmmm I guess it is a
problem with the case insensitivity on Windows, I tried to use
check_case:strict env setting, fired up a new terminal with the new
env setting in use and hey, what do you guess, it doesn't work. Seems
the linker doesn't care about the case:strict setting:-(
Ok, next try, make a copy from libGtk.dll.a to libGtkGtk.dll.a and
changed the Makefile to use this libGtkGtk instead of libGtk:
1. cp blib/arch/auto/Gtk/libGtk.dll.a blib/arch/auto/Gtk/libGtkGtk.dll.a
2. add to all created Makefile's `-L../blib/arch/auto/Gtk -lGtkGtk' in
`OTHERLDFLAGS'.
3. compile all in a shell with the env setting
CYGWIN="check_case:strict" (well add check_case:strict to your
usual CYGWIN settings, I use now:
CYGWIN="ntsec binmode tty nowinsymlinks check_case:strict"
And all this actually works, hurray!
Gnome:
Hmmpf, not in the Gnome directory, this module also needs
`-L../GdkImlib/blib/arch/auto/Gtk/Gdk/ImlibImage -lImlibImage' in
addition to `-L../blib/arch/auto/Gtk -lGtkGtk' in `OTHERLDFLAGS'.
Others:
The following modules are compiled the same way, by adding
`-L../blib/arch/auto/Gtk -lGtkGtk' to `OTHERLDFLAGS'.
Applet:
In the Applet directory there are include paths missing:
`-I/opt/gnome/include/orbit-1.0 -I/opt/gnome/include/libcapplet1'
I added it at the end of the `INC = ...' line in the Makefile and it
compiles ok, well there is also missing:
`-lcapplet -lpanel_applet -lpanel_status' from the library list, add
them to EXTRALIBS & LDLOADLIBS variable defintion somewhere at the
end. Cause:
See the top source Makefile.PL: # --modversion capplet is broken
The same problem with libGnome vs. libgmnome as before with libGtk vs.
libgtk, also make a copy of the perl libGnome.dll.a to
libGnomeGnome.dll.a and add this to OTHERLDLIBS:
`-L../Gnome/blib/arch/auto/Gnome -lGnomeGnome'
GnomePrint:
Also a library missing at the linkline -lgnomeprint? Huh, this perl
package is really strange... And this modules also needs another
module, `-L../GdkPixbuf/blib/arch/auto/Gtk/Gdk/Pixbuf -lPixbuf'
At least there are no circular dependencies yet...
After compilation finished:
* launch X
* test Gtk-Perl with `make test' doesn't work for me.
I could run the samples in the samples directories though.
Applet and Gnomeprint are probably not working as expected, Gnome
works partially.
HTH,
Gerrit
--
=^..^=
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -