• Home
  • Raw
  • Download

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 OS X 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
53 Using ``<filesystem>`` and libc++fs
56 Libc++ provides the implementation of the filesystem library in a separate
61 Prior to libc++ 7.0, users of ``<experimental/filesystem>`` were required
62 to link libc++experimental.
70 Using libc++experimental and ``<experimental/...>``
73 Libc++ provides implementations of experimental technical specifications
74 in a separate library, ``libc++experimental.a``. Users of ``<experimental/...>``
79 $ clang++ -std=c++14 -stdlib=libc++ test.cpp -lc++experimental
81 Libc++experimental.a may not always be available, even when libc++ is already
82 installed. For information on building libc++experimental from source see
83 :ref:`Building Libc++ <build instructions>` and
84 :ref:`libc++experimental CMake Options <libc++experimental options>`.
86 Note that as of libc++ 7.0 using the ``<experimental/filesystem>`` requires linking
87 libc++fs instead of libc++experimental.
94 * The contents of the ``<experimental/...>`` headers and ``libc++experimental.a``
98 Using libc++ on Linux
101 On Linux libc++ can typically be used with only '-stdlib=libc++'. However
102 some libc++ installations require the user manually link libc++abi themselves.
103 If you are running into linker errors when using libc++ try adding '-lc++abi'
108 $ clang++ -stdlib=libc++ test.cpp -lc++ -lc++abi -lm -lc -lgcc_s -lgcc
110 Alternately, you could just add libc++abi to your libraries list, which in
115 $ clang++ -stdlib=libc++ test.cpp -lc++abi
118 Using libc++ with GCC
121 GCC does not provide a way to switch from libstdc++ to libc++. You must manually
136 GDB Pretty printers for libc++
139 GDB does not support pretty-printing of libc++ symbols by default. Unfortunately
140 libc++ does not provide pretty-printers itself. However there are 3rd
142 supported by libc++ they may be useful to users.
146 * `Koutheir's libc++ pretty-printers <https://github.com/koutheir/libcxx-pretty-printers>`_.
149 Libc++ Configuration Macros
152 Libc++ provides a number of configuration macros which can be used to enable
153 or disable extended libc++ behavior, including enabling "debug mode" or
160 This macro is used to enable -Wthread-safety annotations on libc++'s
165 This macro is used to disable all visibility annotations inside libc++.
166 Defining this macro and then building libc++ with hidden visibility gives a
167 build of libc++ which does not export any symbols, which can be useful when
171 This macro is used to disable extern template declarations in the libc++
172 headers. The intended use case is for clients who wish to use the libc++
173 headers without taking a dependency on the libc++ library itself.
187 Since libc++ 4.0 this extension has been disabled by default. This macro
203 This macro disables the additional diagnostics generated by libc++ using the
215 libc++ headers, such as `nothrow_t` (note that `nothrow_t` is a struct, so
216 there's no way for libc++ to provide a compatible definition, since you can't
219 By default, libc++ solves this problem by deferring to Microsoft's vcruntime
223 prevents libc++ from depending on vcruntime headers. Consequently, it also
224 prevents libc++ headers from being interoperable with vcruntime headers (from
226 attempt to combine libc++ headers with the problematic vcruntime headers. This
272 Libc++ Extensions
275 This section documents various extensions provided by libc++, how they're
290 For this reason libc++ provides an extension that does just that! The