<div dir="ltr">Currently I don't think we have a solid preferred choice for a Windows standard C++ library to use with Clang. There are only tradeoffs and options:<div><br></div><div>MSVC's STL: The 2013 version should work out of the box right now, but exceptions don't work and you have to disable them with -D_HAS_EXCEPTIONS=0. This option is good if you want to link against other C++ code built with MSVC. I care about this config, so if you hit snags I'd like to know. There is a known issue with the C++11 threading headers and -D_HAS_EXCEPTIONS=0, which is described in this file in LLDB:</div><div><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/test/make/uncaught_exception.h?view=markup">http://llvm.org/viewvc/llvm-project/lldb/trunk/test/make/uncaught_exception.h?view=markup</a><br></div><div><br></div><div>libstdc++ as distributed by MinGW64: This works and supports exceptions, but is ABI incompatible with C++ code compiled by MSVC, and ABI compatible with code compiled by GCC. Support for the new C++11 threading headers either relies on pthread emulation (I assume this is slow) or is non-existent.<br></div><div><br></div><div>libc++: I know people are using this on Windows on ARM. This isn't really a battle tested configuration yet, though, so you would likely hit bugs. Saleem might be able to say more. I don't think we have implementations of <thread> for Windows. You can use libc++ with Clang while targetting MSVC (--target=x86_64-pc-windows-msvc) or mingw (--target=x86_64-w64-windows-gnu), as long as you don't pass standard library types across an ABI boundary.</div><div><br></div><div>Hope that helps.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 20, 2014 at 7:26 AM, Chris <span dir="ltr"><<a href="mailto:jesdisciple@gmail.com" target="_blank">jesdisciple@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>Hi there. For compiling C++ in Clang on Windows (8, in case it matters), what's the recommended implementation of the standard library? I have msvc 2013 and MinGW 4.8.2, and I would be willing to checkout libc++ and compile it if it's not still a world of hurt.</div><div><br></div><div>I tried copying the standard library from my MinGW installation to one of the paths Clang seemed to be looking for includes, but that didn't work. The best I got was silent failure, after I butchered the directory structure in reaction to errors.</div><div><br></div><div>I hope this thread gets crawled by Google, because nothing recent shows up there.</div><br clear="all"><div><div>Want what you have,<br>Chris</div></div>
</div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>