On 14.07.2010, at 01:25, Shane.Hill.dsto.defence.gov wrote:
> G'day All,
>
> I just did a usual update to my Cygwin distribution and now I can't seem to 
> be able to link any of my Fltk code and the Fltk source itself. I have 
> compiled Fltk in the default mode, which uses the -mno-cygwin switch to use 
> the MinGW version of gcc. All the code seems to compile correctly, but during 
> the link stage I get the following error:
>
> $ make
> === making src ===
> === making fluid ===
> Linking fluid.exe...
> ./lib/libfltk.a(fl_dnd.o):fl_dnd.cxx:(.text$_ZN12FLDropTarget14QueryInterfaceERK5_GUIDPPv+0x16):
>  undefined reference to `_IID_IUnknown'
> ./lib/libfltk.a(fl_dnd.o):fl_dnd.cxx:(.text$_ZN12FLDropTarget14QueryInterfaceERK5_GUIDPPv+0x2d):
>  undefined reference to `_IID_IDropTarget'
> ./lib/libfltk.a(fl_dnd.o):fl_dnd.cxx:(.text$_ZN12FLDropSource14QueryInterfaceERK5_GUIDPPv+0x16):
>  undefined reference to `_IID_IUnknown'
> ./lib/libfltk.a(fl_dnd.o):fl_dnd.cxx:(.text$_ZN12FLDropSource14QueryInterfaceERK5_GUIDPPv+0x2d):
>  undefined reference to `_IID_IDropSource'
> ./lib/libfltk.a(fl_dnd.o):fl_dnd.cxx:(.text$_ZN12FLDataObject14QueryInterfaceERK5_GUIDPPv+0x16):
>  undefined reference to `_IID_IUnknown'
> ./lib/libfltk.a(fl_dnd.o):fl_dnd.cxx:(.text$_ZN12FLDataObject14QueryInterfaceERK5_GUIDPPv+0x2d):
>  undefined reference to `_IID_IDataObject'
> collect2: ld returned 1 exit status
> make[1]: *** [fluid.exe] Error 1
> make: *** [all] Error 1
>
> Most unusual. I have not found many references to these items on the web. Any 
> thoughts?

Please report this to the Cygwin mailing list. As Ian wrote already,
the Cygwin folks decided to switch the FLTK mode to X11, and that
pulled in additional X11 libs when you upgraded your Cygwin 
installation. There seems to be a Cygwin uuid lib that is in the
default library search path *before* the Windows (MinGW) version,
and thus you link to the wrong uuid lib.

As I see it, the best way to use FLTK with Cygwin would be to
deinstall the Cygwin FLTK package, find the package that includes
the Cygwin uuid lib and remove that as well. Then, compile and
link FLTK with the stock FLTK distribution from fltk.org.

Note that you need to use gcc-3 with -mno-cygwin, since they (the
Cygwin folks) also removed that option from gcc 4.x. There are
rumors, however, that a "real cross compiler option" (for the
MinGW compiler) should be coming, but I don't know if this is
still a plan or if it is available already.

Or, go the way of less resistance... use MinGW as you did already.
Although I'm using Cygwin regularly, I'm "not amused" about the
decisions they made.

Albrecht
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to