| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <!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>Build</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , build " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="bk01pt01ch02.html" title="Chapter 2. Setup" /><link rel="prev" href="bk01pt01ch02.html" title="Chapter 2. Setup" /><link rel="next" href="test.html" title="Test" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Build</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt01ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="test.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.build"></a>Build</h2></div></div></div><p> |
| Because libstdc++ is part of GCC, the primary source for |
| installation instructions is |
| <a class="ulink" href="http://gcc.gnu.org/install/" target="_top">the GCC install page</a>. |
| Additional data is given here only where it applies to libstdc++. |
| </p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="build.prereq"></a>Prerequisites</h3></div></div></div><p> |
| The list of software needed to build the library is kept with the |
| rest of the compiler, at |
| <a class="ulink" href="http://gcc.gnu.org/install/prerequisites.html" target="_top"> |
| http://gcc.gnu.org/install/prerequisites.html</a>. The same page |
| also lists the tools you will need if you wish to modify the source. |
| </p><p>As of GCC 4.0.1 the minimum version of binutils required to build |
| libstdc++ is <code class="code">2.15.90.0.1.1</code>. You can get snapshots |
| (as well as releases) of binutils from |
| <a class="ulink" href="ftp://sources.redhat.com/pub/binutils" target="_top"> |
| ftp://sources.redhat.com/pub/binutils</a>. |
| 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 if possible. |
| The configure process will automatically detect and use these |
| features if the underlying support is present. |
| </p><p> |
| Finally, a few system-specific requirements: |
| </p><div class="variablelist"><dl><dt><span class="term">linux</span></dt><dd><p> |
| If gcc 3.1.0 or later on is being used on linux, an attempt |
| will be made to use "C" library functionality necessary for |
| C++ named locale support. For gcc 3.2.1 and later, this |
| means that glibc 2.2.5 or later is required and the "C" |
| library de_DE locale information must be installed. |
| </p><p> |
| Note however that the sanity checks involving the de_DE |
| locale are skipped when an explicit --enable-clocale=gnu |
| configure option is used: only the basic checks are carried |
| out, defending against misconfigurations. |
| </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_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 |
| se_NO.UTF-8 UTF-8 |
| ta_IN UTF-8 |
| zh_TW BIG5 |
| </pre><p>Failure to have the underlying "C" library locale |
| information installed will mean that C++ named locales for the |
| above regions will not work: because of this, the libstdc++ |
| testsuite will skip the named locale tests. If this isn't an |
| issue, don't worry about it. If named locales are needed, the |
| underlying locale information must be installed. Note that |
| rebuilding libstdc++ after the "C" locales are installed is not |
| necessary. |
| </p><p> |
| To install support for locales, do only one of the following: |
| </p><div class="itemizedlist"><ul type="disc"><li><p>install all locales</p><div class="itemizedlist"><ul type="circle"><li><p>with RedHat Linux: |
| </p><p> <code class="code"> export LC_ALL=C </code> |
| </p><p> <code class="code"> rpm -e glibc-common --nodeps </code> |
| </p><p> |
| <code class="code"> rpm -i --define "_install_langs all" |
| glibc-common-2.2.5-34.i386.rpm |
| </code> |
| </p></li><li><p> |
| Instructions for other operating systems solicited. |
| </p></li></ul></div></li><li><p>install just the necessary locales</p><div class="itemizedlist"><ul type="circle"><li><p>with Debian Linux:</p><p> Add the above list, as shown, to the file |
| <code class="code">/etc/locale.gen</code> </p><p> run <code class="code">/usr/sbin/locale-gen</code> </p></li><li><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><p> |
| Instructions for other operating systems solicited. |
| </p></li></ul></div></li></ul></div></dd></dl></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="build.configure"></a>Make</h3></div></div></div><p>If you have never done this before, you should read the basic |
| <a class="ulink" href="http://gcc.gnu.org/install/" target="_top">GCC Installation |
| Instructions</a> first. Read <span class="emphasis"><em>all of them</em></span>. |
| <span class="emphasis"><em>Twice.</em></span> |
| </p><p>When building libstdc++ you'll have to configure |
| the entire <span class="emphasis"><em>gccsrcdir</em></span> directory. The full list of libstdc++ |
| specific configuration options, not dependent on the specific compiler |
| release being used, can be found <a class="ulink" href="configopts.html" target="_top">here</a>. |
| </p><p>Consider possibly using --enable-languages=c++ to save time by only |
| building the C++ language parts. |
| </p><pre class="programlisting"> |
| 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...</pre></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt01ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt01ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="test.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Setup </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Test</td></tr></table></div></body></html> |