| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!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" xml:lang="en" lang="en"> |
| <head> |
| <meta name="AUTHOR" content="pme@gcc.gnu.org (Phil Edwards)" /> |
| <meta name="KEYWORDS" content="libstdc++, libstdc++-v3, GCC, g++" /> |
| <meta name="DESCRIPTION" content="README for the GNU libstdc++ effort." /> |
| <meta name="GENERATOR" content="vi and eight fingers" /> |
| <title>libstdc++-v3 Installation Instructions</title> |
| <link rel="StyleSheet" href="lib3styles.css" type="text/css" /> |
| <link rel="Copyright" href="17_intro/license.html" type="text/html" /> |
| </head> |
| <body> |
| |
| <h1 class="centered"><a name="top">Getting started: configure, build, install</a></h1> |
| |
| <p class="fineprint"><em> |
| The latest version of this document is always available at |
| <a href="http://gcc.gnu.org/onlinedocs/libstdc++/install.html"> |
| http://gcc.gnu.org/onlinedocs/libstdc++/install.html</a>. |
| </em></p> |
| |
| <p><em> |
| To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>. |
| </em></p> |
| |
| |
| <!-- ####################################################### --> |
| <hr /> |
| <h2>Contents</h2> |
| |
| <p>Because libstdc++-v3 is part of GCC, the primary source for |
| installation instructions is |
| <a href="http://gcc.gnu.org/install/">the GCC install page</a>. |
| Additional data is given here only where it applies to libstdc++-v3. |
| </p> |
| |
| <ul> |
| <li><a href="#prereqs">Tools you will need beforehand</a></li> |
| <li><a href="#config">Configuring</a></li> |
| <li><a href="#usage">Using the library</a></li> |
| </ul> |
| |
| <hr /> |
| |
| <!-- ####################################################### --> |
| |
| <h2><a name="prereqs">Tools you will need beforehand</a></h2> |
| <p>The list of software needed to build the library is kept with the |
| rest of the compiler, at |
| <a href="http://gcc.gnu.org/install/prerequisites.html"> |
| 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 June 19, 2000, libstdc++ attempts to use tricky and |
| space-saving features of the GNU toolchain, enabled with |
| <code>-ffunction-sections -fdata-sections -Wl,--gc-sections</code>. |
| To obtain maximum benefit from this, binutils after this date should |
| also be used (bugs were fixed with C++ exception handling related |
| to this change in libstdc++-v3). The version of these tools should |
| be <code>2.10.90</code>, or later, and you can get snapshots (as |
| well as releases) of binutils |
| <a href="ftp://sources.redhat.com/pub/binutils">here</a>. 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> |
| <dl> |
| <dt> linux </dt> |
| |
| <dd>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. |
| |
| <p> |
| The configure option --enable-clocale can be used force a |
| particular behavior. |
| </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> |
| 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 not pass 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> |
| |
| <ul> |
| <li> install all locales |
| <ul> |
| <li>with RedHat Linux: |
| <p> <code> export LC_ALL=C </code> </p> |
| <p> <code> rpm -e glibc-common --nodeps </code> </p> |
| <p> <code> rpm -i --define "_install_langs all" |
| glibc-common-2.2.5-34.i386.rpm </code> </p> |
| </li> |
| <li> (instructions for other operating systems solicited) </li> |
| </ul> |
| </li> |
| <li> install just the necessary locales |
| <ul> |
| <li>with Debian Linux: |
| <p> Add the above list, as shown, to the file |
| <code>/etc/locale.gen</code> </p> |
| <p> run <code>/usr/sbin/locale-gen</code> </p> |
| </li> |
| <li> on most Unix-like operating systems: |
| <p> <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> (instructions for other operating systems solicited) </li> |
| </ul> |
| </li> |
| </ul> |
| </dd> |
| </dl> |
| |
| <hr /> |
| |
| <h2><a name="config">Configuring</a></h2> |
| <p>If you have never done this before, you should read the basic |
| <a href="http://gcc.gnu.org/install/">GCC Installation |
| Instructions</a> first. Read <em>all of them</em>. |
| <strong>Twice.</strong> |
| </p> |
| <p>When building libstdc++-v3 you'll have to configure |
| the entire <em>gccsrcdir</em> directory. The full list of libstdc++-v3 |
| specific configuration options, not dependent on the specific compiler |
| release being used, can be found <a href="configopts.html">here</a>. |
| </p> |
| <p>Consider possibly using --enable-languages=c++ to save time by only |
| building the C++ language parts. |
| </p> |
| |
| <pre> |
| cd <em>gccbuilddir</em> |
| <em>gccsrcdir</em>/configure --prefix=<em>destdir</em> --other-opts...</pre> |
| |
| |
| <hr /> |
| <h2><a name="usage">Using the library</a></h2> |
| <h3>Find the new library at runtime (shared linking only)</h3> |
| <p>If you only built a static library (libstdc++.a), or if you |
| specified static linking, you don't have to worry about this. |
| But if you built a shared library (libstdc++.so) and linked |
| against it, then you will need to find that library when you |
| run the executable. |
| </p> |
| <p>Methods vary for different platforms and different styles, but |
| the usual ones are printed to the screen during installation. |
| They include: |
| </p> |
| <ul> |
| <li>At runtime set LD_LIBRARY_PATH in your environment correctly, |
| so that the shared library for libstdc++ can be found and |
| loaded. Be certain that you understand all of the other |
| implications and behavior of LD_LIBRARY_PATH first (few |
| people do, and they get into trouble). |
| </li> |
| <li>Compile the path to find the library at runtime into the |
| program. This can be done by passing certain options to g++, |
| which will in turn pass them on to the linker. The exact |
| format of the options is dependent on which linker you use: |
| <ul> |
| <li>GNU ld (default on Linux):<code> -Wl,--rpath,<em>destdir</em>/lib</code></li> |
| <li>IRIX ld:<code> -Wl,-rpath,<em>destdir</em>/lib</code></li> |
| <li>Solaris ld:<code> -Wl,-R<em>destdir</em>/lib</code></li> |
| <li>More...? Let us know!</li> |
| </ul> |
| </li> |
| </ul> |
| <p>Use the <code>ldd(1)</code> utility to show which library the system |
| thinks it will get at runtime. |
| </p> |
| <p>A libstdc++.la file is also installed, for use with Libtool. If |
| you use Libtool to create your executables, these details are |
| taken care of for you. |
| </p> |
| |
| |
| <!-- |
| <hr /> |
| <h2><a name=""></a></h2> |
| <p> |
| </p> |
| |
| --> |
| |
| <!-- ####################################################### --> |
| |
| <hr /> |
| <p class="fineprint"><em> |
| See <a href="17_intro/license.html">license.html</a> for copying conditions. |
| Comments and suggestions are welcome, and may be sent to |
| <a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>. |
| </em></p> |
| |
| |
| </body> |
| </html> |
| |