Check that you are only doing ONE of the following:<br>1. Use "-luuid", which you are using<br>2. #include <initguid.h> or #define INITGUID (which is what it does) before including the relevant COM headers<br>

Never both, or you'll get those multiple definitions.<br><br>Damjan<br><br><div class="gmail_quote">On Fri, May 3, 2013 at 11:31 AM, Daniel Jeliński <span dir="ltr"><<a href="mailto:djelinski1@gmail.com" target="_blank">djelinski1@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Additional info:<br></div>after my patches amstream fails to link complaining about duplicate IID_IResourceManager:<br>

<span style="font-family:courier new,monospace">~/wine-git/dlls/amstream$ make<br>
../../tools/winegcc/winegcc -m32 -B../../tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./amstream.spec amstream.o audiodata.o main.o mediastream.o mediastreamfilter.o     amstream_classes_r.res  version.res    -o <a href="http://amstream.dll.so" target="_blank">amstream.dll.so</a>  -lstrmiids -lstrmbase -luuid -lole32 -ladvapi32  ../../libs/port/libwine_port.a   <br>


../../dlls/uuid/libuuid.a(uuid.o):(.rodata+0x540): multiple definition of `IID_IResourceManager'<br>../../dlls/strmiids/libstrmiids.a(strmiids.o):(.rodata+0x5e0): first defined here<br>winebuild: /usr/bin/ld failed with status 1<br>


winegcc: ../../tools/winebuild/winebuild failed<br></span><br></div>if I don't add the DTC headers to uuid, linking xolehlp fails:<br><span style="font-family:courier new,monospace">~/wine-git/dlls/xolehlp$ make<br>../../tools/winegcc/winegcc -m32 -B../../tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./xolehlp.spec xolehlp.o           -o <a href="http://xolehlp.dll.so" target="_blank">xolehlp.dll.so</a>  -luuid  ../../libs/port/libwine_port.a                                                                                                                                      <br>


xolehlp.o: In function `TransactionDispenser_QueryInterface':<br>/home/daniel/wine-git/dlls/xolehlp/xolehlp.c:170: undefined reference to `IID_ITransactionDispenser'<br>/usr/bin/ld: xolehlp.o: relocation R_386_GOTOFF against undefined hidden symbol `IID_ITransactionDispenser' can not be used when making a shared object<br>


/usr/bin/ld: final link failed: Bad value<br></span><br></div>How do I know which dll should export these IIDs?<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/2 Daniel Jeliński <span dir="ltr"><<a href="mailto:djelinski1@gmail.com" target="_blank">djelinski1@gmail.com</a>></span><br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hello,<br></div>I just tried compiling all of Wine with my patch series applied and, to my surprise, compilation failed. The reason was that IID_IResourceManager was already declared elsewhere.<br>



<br></div>Now, according to this page:<br><a href="http://mikolajapp.appspot.com/uuid/query?q=%7B56a868ac-0ad4-11ce-b03a-0020af0ba770%7D" target="_blank">http://mikolajapp.appspot.com/uuid/query?q={56a868ac-0ad4-11ce-b03a-0020af0ba770}</a><br>



</div>Wine's strmif.h declares IID_IResourceManager, while SDK declares <tt>__declspec(uuid)</tt> as <tt>IResourceManager.<br></tt></div>SDK declares IID_IResourceManager elsewhere:<br><a href="http://mikolajapp.appspot.com/uuid/query?q=%7B03741d21-87eb-11ce-8081-0080c758527e%7D" target="_blank">http://mikolajapp.appspot.com/uuid/query?q={03741d21-87eb-11ce-8081-0080c758527e}</a><br>



I'm new to COM, so I'm not sure what exactly is the difference between IID and declspec(uuid). Could anyone explain or suggest a fix?<br></div>Thanks,<br></div>Daniel<br> </div>
</blockquote></div><br></div>
</div></div><br><br>
<br></blockquote></div><br>