This is the mail archive of the cygwin-apps mailing list for the Cygwin 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: Unable to build setup.exe: undefined reference to `_IID_IPersistFile'


On 11/8/2010 7:45 AM, Andy Koppe wrote:
> On 8 November 2010 12:29, Ken Brown wrote:
>> You can see 'g++-3 -mno-cygwin' in the link command that I
>> quoted in my original post.

You're right. Sorry for the confusion.

>>  There must be some other reason that
>> /usr/lib/libuuid.a is used.
>>
> 
> It's due to a name clash between the unrelated libuuid and UUID.DLL.
> It's aiming for /usr/lib/w32api/libuuid.a rather than
> /usr/lib/libuuid.a. The workaround is to uninstall libuuid-devel. See
> also http://www.cygwin.com/ml/cygwin/2010-06/msg00601.html.

...and Andy's correct.  This is a (long-standing) problem with the
-mno-cygwin mode: it tends to "mix" cygwin libs in /usr/lib and the
"native" ones in /usr/lib/w32api/ together (which is very bad).  The
cross compiler setups do not have this problem (but, AFAIK, the
mingw64-* based cross compilers aren't official supported for building
setup.exe...which means we(*) need to get off the stick and publish a
mingw.org-based cross compiler soon).

If you want to use gcc-3, then the two workarounds are, as Andy
suggests, to uninstall libuuid-devel, or to modify the
Makefile[|.in|.am] that specifies -luuid and explicitly refer to
/usr/lib/w32api/libuuid.a instead.


(*) For various values of "we".

--
Chuck


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