This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Error Installing imlib 1.9.14


Peter,

In this command,
> gcc -shared -o cygimlib-gif.dll
> -Wl,--out-implib=libimlib-gif.dll.a -Wl,--export
> -all-symbols -Wl,--whole-archive libimlib-gif.a
> -Wl,--no-whole-archive -L/usr/lo
> cal/lib -lungif -L. -lgdk_imlib -L/opt/gnome/lib
> -L/usr/X11R6/lib -lgtk -lgdk -l
> gmodule -lglib -lintl -lXext -lX11

you are getting the error,
> undefined reference to `_gdk_m
> alloc_image'

which means that you have to move the -lgdk or -lgdk_imlib so that it
appears in the link sequence after all libraries that depend on it.

The reason for this is simple: the list of things to link is walked from
left to right creating a list of references, which are checked against the
remaining libraries on the list that might have those symbols defined.  At
no point does the linker say, "Ah ha, I've got a symbol here that is
undefined, let me go back and check the list of things to link for this
symbol".  That would result in ridiculus link times.  Move the gdk or
gdk_imlib libs towards the end of the list (experiment with this) and the
linker will be happy.


Now, you can gain some additional insight by figuring out which library or
object file contains io-gif.c, as this file has the undefined reference to
_gdk_malloc_image.  Then find out which library contains gdk_malloc_image
(probably gdk or gdk_imlib).  Then move the corresponding library later in
the list.

There is one other possibility: the version of imlib-gif that you are trying
to build depends on a newer (or older) version of gdk or gdk-imlib that
contains gdk_malloc_image, while your version of gdk or gdk_imlib does not
have that symbol.  Look into this and report.


Harold


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]