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
