(Cross)Compile failure for ole32/tests/marshal.c

Robert Shearman rob at codeweavers.com
Thu Jan 4 14:33:59 CST 2007

Paul Vriens wrote:
> Hi,
> when running the 'make crosstest' in ole32/tests, I get:
> [paul at penguin tests]$ make crosstest
> i386-mingw32-gcc clipboard.cross.o compobj.cross.o hglobalstream.cross.o
> marshal.cross.o moniker.cross.o ole2.cross.o propvariant.cross.o
> stg_prop.cross.o storage32.cross.o usrmarshal.cross.o  testlist.cross.o
> -o ole32_crosstest.exe -loleaut32 -lole32 -luser32 -lgdi32 -ladvapi32
> -lkernel32 -luuid
> marshal.cross.o:marshal.c:(.text+0x7a97): undefined reference to
> `_IID_IChannelHook'
> collect2: ld returned 1 exit status
> make: *** [ole32_crosstest.exe] Error 1
> When looking at our objidl.h, I see:
> DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1,
> 0x00,0x20,0xaf,0x6e,0x72,0xf4);
> whereas the objidl.h in the SDK shows:
> EXTERN_C const IID IID_IChannelHook;
> and the 'real' definition seems to be placed in comdef.h

comdef.h in the PSDK isn't a 'real' place for anything other than C++ hacks.

> If I add the definition to marshal.c the cross-compile succeeds, but
> that's obviously not the solution.
> Can somebody more knowledgeable have a look?

In the PSDK you get IID_IChannelHook by linking to uuid.lib.

Rob Shearman

More information about the wine-devel mailing list