Lines Matching full:libc
2 Using libc++
11 If you already have libc++ installed you can use it with clang.
15 $ clang++ -stdlib=libc++ test.cpp
16 $ clang++ -std=c++11 -stdlib=libc++ test.cpp
18 On macOS and FreeBSD libc++ is the default standard library
19 and the ``-stdlib=libc++`` is not required.
23 If you want to select an alternate installation of libc++ you
28 $ clang++ -std=c++11 -stdlib=libc++ -nostdinc++ \
35 search path. Meaning that the systems dynamic linker will look for libc++ in
44 $ clang++ -stdlib=libc++ -nostdinc++ \
48 $ ./a.out # Searches for libc++ in the systems library paths.
50 $ ./a.out # Searches for libc++ along LD_LIBRARY_PATH
55 Prior to LLVM 9.0, libc++ provides the implementation of the filesystem library
57 are required to link ``-lc++fs``. Prior to libc++ 7.0, users of
58 ``<experimental/filesystem>`` were required to link libc++experimental.
63 Using libc++experimental and ``<experimental/...>``
66 Libc++ provides implementations of experimental technical specifications
67 in a separate library, ``libc++experimental.a``. Users of ``<experimental/...>``
72 $ clang++ -std=c++14 -stdlib=libc++ test.cpp -lc++experimental
74 Libc++experimental.a may not always be available, even when libc++ is already
75 installed. For information on building libc++experimental from source see
76 :ref:`Building Libc++ <build instructions>` and
77 :ref:`libc++experimental CMake Options <libc++experimental options>`.
84 * The contents of the ``<experimental/...>`` headers and ``libc++experimental.a``
91 Using libc++ on Linux
94 On Linux libc++ can typically be used with only '-stdlib=libc++'. However
95 some libc++ installations require the user manually link libc++abi themselves.
96 If you are running into linker errors when using libc++ try adding '-lc++abi'
101 $ clang++ -stdlib=libc++ test.cpp -lc++ -lc++abi -lm -lc -lgcc_s -lgcc
103 Alternately, you could just add libc++abi to your libraries list, which in
108 $ clang++ -stdlib=libc++ test.cpp -lc++abi
111 Using libc++ with GCC
114 GCC does not provide a way to switch from libstdc++ to libc++. You must manually
129 GDB Pretty printers for libc++
132 GDB does not support pretty-printing of libc++ symbols by default. Unfortunately
133 libc++ does not provide pretty-printers itself. However there are 3rd
135 supported by libc++ they may be useful to users.
139 * `Koutheir's libc++ pretty-printers <https://github.com/koutheir/libcxx-pretty-printers>`_.
142 Libc++ Configuration Macros
145 Libc++ provides a number of configuration macros which can be used to enable
146 or disable extended libc++ behavior, including enabling "debug mode" or
153 This macro is used to enable -Wthread-safety annotations on libc++'s
158 This macro is used to disable all visibility annotations inside libc++.
159 Defining this macro and then building libc++ with hidden visibility gives a
160 build of libc++ which does not export any symbols, which can be useful when
164 This macro is used to disable extern template declarations in the libc++
165 headers. The intended use case is for clients who wish to use the libc++
166 headers without taking a dependency on the libc++ library itself.
180 Since libc++ 4.0 this extension has been disabled by default. This macro
196 This macro disables the additional diagnostics generated by libc++ using the
208 libc++ headers, such as `nothrow_t` (note that `nothrow_t` is a struct, so
209 there's no way for libc++ to provide a compatible definition, since you can't
212 By default, libc++ solves this problem by deferring to Microsoft's vcruntime
216 prevents libc++ from depending on vcruntime headers. Consequently, it also
217 prevents libc++ headers from being interoperable with vcruntime headers (from
219 attempt to combine libc++ headers with the problematic vcruntime headers. This
265 Libc++ Extensions
268 This section documents various extensions provided by libc++, how they're
283 For this reason libc++ provides an extension that does just that! The