Hi again again,<div><br></div><div>I'm trying to build my compiler frontend in C++ on Windows 7 x64 using clang++.exe. I want to use clang++ for my project so that I get a feel for how mature and usable the Windows support is as I gradually get up to speed with LLVM for Windows. I could develop on Linux, but I need the Windows support so I figure I might as well do it the hard way.</div>
<div><br></div><div>My code is fairly simple C++ with a few template classes, a rare virtual function, and nothing very fancy. I am able to compile my code without warnings (although clang++ earlier on found a couple of very serious issues in my code). But when I get to the link phase, all hell breaks loose:</div>
<div><br></div><div>I get a ton of these warnings:</div><div><br></div><div><div style="font-size:12pt;font-family:'Courier New'">
<pre>Memory.o : warning LNK4006: _InterlockedBitTestAndSet already defined in Stream.o; second definition ignored
Memory.o : warning LNK4006: _InterlockedBitTestAndReset already defined in Stream.o; second definition ignored
Memory.o : warning LNK4006: _InterlockedBitTestAndComplement already defined in Stream.o; second definition ignored
Memory.o : warning LNK4006: _MemoryBarrier already defined in Stream.o; second definition ignored
Memory.o : warning LNK4006: _ReadPMC already defined in Stream.o; second definition ignored
</pre></div><div>I don't use InterlockedBitTestAndSet anywhere in my code and the same goes for the rest of the symbols that are being warned about.</div><div><br></div><div>After that, I get a ton of errors form the linker because it complains about the above symbols already being defined.</div>
<div><br></div><div>I also get a few errors like this:</div><div><span style="font-size:12pt;font-family:'Courier New'"><br></span></div><div><span style="font-size:12pt;font-family:'Courier New'">Bitset_test-423377.o : error LNK2001: unresolved external symbol __ZTVN10__cxxabiv120__si_class_type_infoE</span></div>
<div><br></div><div>Any ideas? Is the Windows support simply not mature enought for real use or am I doing something wrong? I invoke the linker through clang++ by giving the input object files and a library that must be linked against, made with Microsoft's LIB tool. I use Microsoft LIB because LINK rejects libraries created using llvm-ar. </div>
<div><br></div><div>I only use the -c, -o, -v, and -D options to clang++.exe and nothing else. Nothing advanced yet.</div><div><br></div><div>Is it that clang++/Windows simply don't support the use of libraries yet? The hello world example works great, but I do aspire to more than that.</div>
<div><br></div><div>If I have missed an important note in the documentation, then I apologize greatly in advance.</div><div><br></div><div><br></div><div>Sincerely,</div><div>Mikael Lyngvig</div><br>
</div>