Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Artifact ID: | 15d2e06ec9e076c4c5276405b1d8c2bac891504299c999508770c7b3ea75a4cd |
---|---|
Page Name: | Configuration |
Date: | 2019-02-03 16:49:20 |
Original User: | luismachuca |
Parent: | 600aa7ea17a2fc67728ec08c4f564e68c9fae4a003eb8c498c6932c7ab0da365 (diff) |
Next | a442ca0c3ab132208d5d40036a8ba6bb12b3b3db61a6eb933e84a1b4cc99fbc2 |
General configuration procedure
- Take a look at the Per-Compiler Notes for your specific compiler.
- Add the cxxomfort/ path to your compiler/project's
#include
path.
Configuring GCC
To add the path to a compile command, use the -I
or -isystem
switches:
g++ [...options] -I /path/to/include/cxxomfort/ [...sources]
In C++03 mode only:
Add to the compiler search path the path to the TR1 forwarder before the path to cxxomfort. See Per-Compiler Notes#notes-gcc for more information.
Alternative: Patching system headers unsupported
If one does not wish to add further dependencies to the project, and due to the way the TR1 headers are themselves coded, the fallback to skirt around the issue is to make sure that code that uses the ambiguous symbols (in stl_list.h
among others) is somehow made to see only the base implementation required and not the TR1 one.
There are two ways around this issue detailed in the following issue: (link pending):
- patch
stl_list.h
and other such files to refer to the namespace or object by full name, or... - Make sure that the system headers affected such as
<list>
are #included into the project beforecxxomfort/cxxomfort.hpp
- or before any other cxxomfort header except the ones described in "Base Features", that iscxxomfort/base.hpp
and a few others.
Of note however, trying this is NOT recommended and not supported.
Configuring with clang
Use the -I
switch to add to the compiler path:
clang [...options] -I /path/to/include/cxxomfort/ [...sources]
For the most part this will be setup and work exactly as it does in GCC; however, it might be necessary to patch a couple of header files from the tr1/ implementation if using clang alongside GCC 4.6 or earlier (more specifically, to deal with the declarations of some of the new cmath
functions). Patching the libraries or providing other fallbacks falls outside the scope of this document.
As of latest 2018 release, Clang is only supported with the stdlib Standard Library implementation; libc++ (eg.: "clang-libc++) is not supported.
Configuring with MSVC
Use the -I
switch to add to the compiler path:
cl.exe [...options] -I /path/to/include/cxxomfort/ [...sources]
stdint.h and inttypes.h
If your version of MSVC comes without <stdint.h> and or <inttypes.h>(such as the Express version of MSVC 2008), you can simply download them from somewhere and add their path to the compiler/project's search paths.
- Copy one of the various alternative stdint.h sources like the ones described here or here.
- Download the "portable stdint.h" described here (
pstdint.h
) and save it as stdint.h. - Copy the version of pstdint.h already included in cxxomfort (under
cxxomfort/impl/pstdint.h
).
MSVC 2008
Depending on the version of MSVC 2008 being used, support given by cxxomfort is conditioned. See Per-Compiler Notes#notes-msvc for more information.
- ← Back to Installation.
- → Continue to Features.