[cfe-dev] C++ Standard Library on Windows

Reid Kleckner rnk at google.com
Thu Nov 20 10:11:00 PST 2014


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:

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:
http://llvm.org/viewvc/llvm-project/lldb/trunk/test/make/uncaught_exception.h?view=markup

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.

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.

Hope that helps.

On Thu, Nov 20, 2014 at 7:26 AM, Chris <jesdisciple at gmail.com> wrote:

> 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.
>
> 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.
>
> I hope this thread gets crawled by Google, because nothing recent shows up
> there.
>
> Want what you have,
> Chris
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20141120/ff0cc6d9/attachment.html>


More information about the cfe-dev mailing list