2012-03-27 23:13:14 +00:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2014-09-21 17:33:12 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / > < title > Chapter 2. Setup< / title > < meta name = "generator" content = "DocBook XSL-NS Stylesheets V1.78.1" / > < meta name = "keywords" content = "ISO C++, library" / > < meta name = "keywords" content = "ISO C++, runtime, library" / > < link rel = "home" href = "../index.html" title = "The GNU C++ Library" / > < link rel = "up" href = "intro.html" title = "Part I. Introduction" / > < link rel = "prev" href = "bugs.html" title = "Bugs" / > < link rel = "next" href = "configure.html" title = "Configure" / > < / head > < body > < div class = "navheader" > < table width = "100%" summary = "Navigation header" > < tr > < th colspan = "3" align = "center" > Chapter 2. Setup< / th > < / tr > < tr > < td width = "20%" align = "left" > < a accesskey = "p" href = "bugs.html" > Prev< / a > < / td > < th width = "60%" align = "center" > Part I.
2012-03-27 23:13:14 +00:00
Introduction
2014-09-21 17:33:12 +00:00
< / th > < td width = "20%" align = "right" > < a accesskey = "n" href = "configure.html" > Next< / a > < / td > < / tr > < / table > < hr / > < / div > < div class = "chapter" > < div class = "titlepage" > < div > < div > < h2 class = "title" > < a id = "manual.intro.setup" > < / a > Chapter 2. Setup< / h2 > < / div > < / div > < / div > < div class = "toc" > < p > < strong > Table of Contents< / strong > < / p > < dl class = "toc" > < dt > < span class = "section" > < a href = "setup.html#manual.intro.setup.prereq" > Prerequisites< / a > < / span > < / dt > < dt > < span class = "section" > < a href = "configure.html" > Configure< / a > < / span > < / dt > < dt > < span class = "section" > < a href = "make.html" > Make< / a > < / span > < / dt > < / dl > < / div > < p > To transform libstdc++ sources into installed include files
2012-03-27 23:13:14 +00:00
and properly built binaries useful for linking to other software is
a multi-step process. Steps include getting the sources,
configuring and building the sources, testing, and installation.
< / p > < p > The general outline of commands is something like:
< / p > < pre class = "programlisting" >
< span class = "emphasis" > < em > get gcc sources< / em > < / span >
< span class = "emphasis" > < em > extract into gccsrcdir< / em > < / span >
mkdir < span class = "emphasis" > < em > gccbuilddir< / em > < / span >
cd < span class = "emphasis" > < em > gccbuilddir< / em > < / span >
< span class = "emphasis" > < em > gccsrcdir< / em > < / span > /configure --prefix=< span class = "emphasis" > < em > destdir< / em > < / span > --other-opts...
make
make check
make install
< / pre > < p >
Each step is described in more detail in the following sections.
2014-09-21 17:33:12 +00:00
< / p > < div class = "section" > < div class = "titlepage" > < div > < div > < h2 class = "title" style = "clear: both" > < a id = "manual.intro.setup.prereq" > < / a > Prerequisites< / h2 > < / div > < / div > < / div > < p >
2012-03-27 23:13:14 +00:00
Because libstdc++ is part of GCC, the primary source for
installation instructions is
2014-09-21 17:33:12 +00:00
< a class = "link" href = "http://gcc.gnu.org/install/" target = "_top" > the GCC install page< / a > .
2012-03-27 23:13:14 +00:00
In particular, list of prerequisite software needed to build the library
2014-09-21 17:33:12 +00:00
< a class = "link" href = "http://gcc.gnu.org/install/prerequisites.html" target = "_top" >
2012-03-27 23:13:14 +00:00
starts with those requirements.< / a > The same pages also list
the tools you will need if you wish to modify the source.
< / p > < p >
Additional data is given here only where it applies to libstdc++.
< / p > < p > As of GCC 4.0.1 the minimum version of binutils required to build
2014-09-21 17:33:12 +00:00
libstdc++ is < code class = "code" > 2.15.90.0.1.1< / code > .
2012-03-27 23:13:14 +00:00
Older releases of libstdc++ do not require such a recent version,
but to take full advantage of useful space-saving features and
bug-fixes you should use a recent binutils whenever possible.
The configure process will automatically detect and use these
features if the underlying support is present.
< / p > < p >
To generate the API documentation from the sources you will need
Doxygen, see < a class = "link" href = "documentation_hacking.html" title = "Writing and Generating Documentation" > Documentation
Hacking< / a > in the appendix for full details.
< / p > < p >
Finally, a few system-specific requirements:
2014-09-21 17:33:12 +00:00
< / p > < div class = "variablelist" > < dl class = "variablelist" > < dt > < span class = "term" > linux< / span > < / dt > < dd > < p >
2012-03-27 23:13:14 +00:00
If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
will be made to use "C" library functionality necessary for
C++ named locale support. For GCC 4.6.0 and later, this
means that glibc 2.3 or later is required.
< / p > < p >
If the 'gnu' locale model is being used, the following
locales are used and tested in the libstdc++ testsuites.
The first column is the name of the locale, the second is
the character set it is expected to use.
< / p > < pre class = "programlisting" >
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
en_GB ISO-8859-1
en_HK ISO-8859-1
en_PH ISO-8859-1
en_US ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-15 ISO-8859-15
en_US.UTF-8 UTF-8
es_ES ISO-8859-1
es_MX ISO-8859-1
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
is_IS UTF-8
it_IT ISO-8859-1
ja_JP.eucjp EUC-JP
ru_RU.ISO-8859-5 ISO-8859-5
ru_RU.UTF-8 UTF-8
se_NO.UTF-8 UTF-8
ta_IN UTF-8
zh_TW BIG5
< / pre > < p > Failure to have installed the underlying "C" library
locale information for any of the above regions means that
the corresponding C++ named locale will not work: because of
this, the libstdc++ testsuite will skip named locale tests
which need missing information. If this isn't an issue, don't
worry about it. If a named locale is needed, the underlying
locale information must be installed. Note that rebuilding
libstdc++ after "C" locales are installed is not necessary.
< / p > < p >
To install support for locales, do only one of the following:
2014-09-21 17:33:12 +00:00
< / p > < div class = "itemizedlist" > < ul class = "itemizedlist" style = "list-style-type: disc; " > < li class = "listitem" > < p > install all locales< / p > < / li > < li class = "listitem" > < p > install just the necessary locales< / p > < div class = "itemizedlist" > < ul class = "itemizedlist" style = "list-style-type: circle; " > < li class = "listitem" > < p > with Debian GNU/Linux:< / p > < p > Add the above list, as shown, to the file
2012-03-27 23:13:14 +00:00
< code class = "code" > /etc/locale.gen< / code > < / p > < p > run < code class = "code" > /usr/sbin/locale-gen< / code > < / p > < / li > < li class = "listitem" > < p > on most Unix-like operating systems:< / p > < p > < code class = "code" > localedef -i de_DE -f ISO-8859-1 de_DE < / code > < / p > < p > (repeat for each entry in the above list) < / p > < / li > < li class = "listitem" > < p >
Instructions for other operating systems solicited.
2014-09-21 17:33:12 +00:00
< / p > < / li > < / ul > < / div > < / li > < / ul > < / div > < / dd > < / dl > < / div > < / div > < / div > < div class = "navfooter" > < hr / > < table width = "100%" summary = "Navigation footer" > < tr > < td width = "40%" align = "left" > < a accesskey = "p" href = "bugs.html" > Prev< / a > < / td > < td width = "20%" align = "center" > < a accesskey = "u" href = "intro.html" > Up< / a > < / td > < td width = "40%" align = "right" > < a accesskey = "n" href = "configure.html" > Next< / a > < / td > < / tr > < tr > < td width = "40%" align = "left" valign = "top" > Bugs < / td > < td width = "20%" align = "center" > < a accesskey = "h" href = "../index.html" > Home< / a > < / td > < td width = "40%" align = "right" valign = "top" > Configure< / td > < / tr > < / table > < / div > < / body > < / html >