Some progress on Python build guide. Minor fixes to getting started guide.

[SVN r37418]
This commit is contained in:
Dave Abrahams 2007-04-11 23:35:08 +00:00
parent 67d181083b
commit 7a12184015
6 changed files with 182 additions and 171 deletions

View File

@ -10,7 +10,7 @@ installing software. To use it, you'll need an executable called
.. _precompiled-bjam: http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941
.. _Boost.Jam documentation: Boost.Jam_
.. .. _Boost.Jam documentation: Boost.Jam_
.. _Boost.Build: ../../tools/build/index.html
.. _Boost.Jam: ../../tools/jam/index.html
.. _Boost.Build documentation: Boost.Build_

View File

@ -15,20 +15,23 @@ Boost?” The good news is that often, there's nothing to build.
require no separately-compiled library binaries or special
treatment when linking.
.. _separate:
.. .. _separate:
The only Boost libraries that *must* be built separately are:
* Boost.Filesystem_
* Boost.IOStreams_
* Boost.ProgramOptions_
* Boost.Python_
* Boost.Python_ (see the `Boost.Python build documentation`__
before building and installing it)
* Boost.Regex_
* Boost.Serialization_
* Boost.Signals_
* Boost.Thread_
* Boost.Wave_
__ ../../libs/python/doc/building.html
A few libraries have optional separately-compiled binaries:
* Boost.DateTime_ has a binary component that is only needed if

View File

@ -19,7 +19,7 @@ following elements:
*Library name*: all boost library filenames begin with ``boost_``.
``-vc71``
*Toolset tag*: identifies the toolset and version used to build
*Toolset tag*: identifies the toolset_ and version used to build
the binary.
``-mt``
@ -68,13 +68,13 @@ following elements:
``.a`` and ``.so`` for static libraries (archives) and shared
libraries, respectively. On Windows, ``.dll`` indicates a shared
library and (except for static libraries built by the ``gcc``
toolset, whose names always end in ``.a``) ``.lib`` indicates a
toolset_, whose names always end in ``.a``) ``.lib`` indicates a
static or import library. Where supported by toolsets on unix
variants, a full version extension is added (e.g. ".so.1.34") and
a symbolic link to the library file, named without the trailing
version number, will also be created.
.. _Boost.Build toolset names: toolset-name_
.. .. _Boost.Build toolset names: toolset-name_
__ ../../libs/python/doc/building.html#variants

View File

@ -27,43 +27,43 @@
.. _`Getting Started on Windows`: windows.html
.. _Cygwin: http://www.cygwin.com
.. _MinGW: http://mingw.org -->
<div class="contents topic">
<p class="topic-title first"><a id="index" name="index">Index</a></p>
<div class="contents topic" id="index">
<p class="topic-title first">Index</p>
<ul class="auto-toc simple">
<li><a class="reference" href="#get-boost" id="id17" name="id17">1&nbsp;&nbsp;&nbsp;Get Boost</a></li>
<li><a class="reference" href="#the-boost-distribution" id="id18" name="id18">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></li>
<li><a class="reference" href="#header-only-libraries" id="id19" name="id19">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></li>
<li><a class="reference" href="#build-a-simple-program-using-boost" id="id20" name="id20">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a><ul class="auto-toc">
<li><a class="reference" href="#errors-and-warnings" id="id21" name="id21">4.1&nbsp;&nbsp;&nbsp;Errors and Warnings</a></li>
<li><a class="reference" href="#get-boost" id="id18">1&nbsp;&nbsp;&nbsp;Get Boost</a></li>
<li><a class="reference" href="#the-boost-distribution" id="id19">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></li>
<li><a class="reference" href="#header-only-libraries" id="id20">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></li>
<li><a class="reference" href="#build-a-simple-program-using-boost" id="id21">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a><ul class="auto-toc">
<li><a class="reference" href="#errors-and-warnings" id="id22">4.1&nbsp;&nbsp;&nbsp;Errors and Warnings</a></li>
</ul>
</li>
<li><a class="reference" href="#prepare-to-use-a-boost-library-binary" id="id22" name="id22">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a><ul class="auto-toc">
<li><a class="reference" href="#easy-build-and-install" id="id23" name="id23">5.1&nbsp;&nbsp;&nbsp;Easy Build and Install</a></li>
<li><a class="reference" href="#or-custom-build-and-install" id="id24" name="id24">5.2&nbsp;&nbsp;&nbsp;Or, Custom Build and Install</a><ul class="auto-toc">
<li><a class="reference" href="#get-bjam" id="id25" name="id25">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
<li><a class="reference" href="#identify-your-toolset" id="id26" name="id26">5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></li>
<li><a class="reference" href="#select-a-build-directory" id="id27" name="id27">5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></li>
<li><a class="reference" href="#invoke-bjam" id="id28" name="id28">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
<li><a class="reference" href="#prepare-to-use-a-boost-library-binary" id="id23">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a><ul class="auto-toc">
<li><a class="reference" href="#easy-build-and-install" id="id24">5.1&nbsp;&nbsp;&nbsp;Easy Build and Install</a></li>
<li><a class="reference" href="#or-custom-build-and-install" id="id25">5.2&nbsp;&nbsp;&nbsp;Or, Custom Build and Install</a><ul class="auto-toc">
<li><a class="reference" href="#get-bjam" id="id26">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
<li><a class="reference" href="#identify-your-toolset" id="id27">5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></li>
<li><a class="reference" href="#select-a-build-directory" id="id28">5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></li>
<li><a class="reference" href="#invoke-bjam" id="id29">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
</ul>
</li>
<li><a class="reference" href="#expected-build-output" id="id29" name="id29">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></li>
<li><a class="reference" href="#in-case-of-build-errors" id="id30" name="id30">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></li>
<li><a class="reference" href="#expected-build-output" id="id30">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></li>
<li><a class="reference" href="#in-case-of-build-errors" id="id31">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></li>
</ul>
</li>
<li><a class="reference" href="#link-your-program-to-a-boost-library" id="id31" name="id31">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a><ul class="auto-toc">
<li><a class="reference" href="#library-naming" id="id32" name="id32">6.1&nbsp;&nbsp;&nbsp;Library Naming</a></li>
<li><a class="reference" href="#test-your-program" id="id33" name="id33">6.2&nbsp;&nbsp;&nbsp;Test Your Program</a></li>
<li><a class="reference" href="#link-your-program-to-a-boost-library" id="id32">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a><ul class="auto-toc">
<li><a class="reference" href="#library-naming" id="id33">6.1&nbsp;&nbsp;&nbsp;Library Naming</a></li>
<li><a class="reference" href="#test-your-program" id="id34">6.2&nbsp;&nbsp;&nbsp;Test Your Program</a></li>
</ul>
</li>
<li><a class="reference" href="#conclusion-and-further-resources" id="id34" name="id34">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></li>
<li><a class="reference" href="#conclusion-and-further-resources" id="id35">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></li>
</ul>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id17" id="get-boost" name="get-boost">1&nbsp;&nbsp;&nbsp;Get Boost</a></h1>
<div class="section" id="get-boost">
<h1><a class="toc-backref" href="#id18">1&nbsp;&nbsp;&nbsp;Get Boost</a></h1>
<p>The most reliable way to get a copy of Boost is to download a
distribution from <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=376197">SourceForge</a>:</p>
<ol class="arabic">
<li><p class="first">Download <tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt><tt class="docutils literal"><span class="pre">.tar.bz2</span></tt>.</p>
<li><p class="first">Download <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=376197"><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt><tt class="docutils literal"><span class="pre">.tar.bz2</span></tt></a>.</p>
</li>
<li><p class="first">In the directory where you want to put the Boost installation,
execute</p>
@ -79,7 +79,7 @@ library packages, however you may need to adapt these
instructions if you use third-party packages, because their
creators usually choose to break Boost up into several packages,
reorganize the directory structure of the Boost distribution,
and/or rename the library binaries.<a class="footnote-reference" href="#packagers" id="id2" name="id2"><sup>1</sup></a> If you have
and/or rename the library binaries.<a class="footnote-reference" href="#packagers" id="id2"><sup>1</sup></a> If you have
any trouble, we suggest using an official Boost distribution
from <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=376197">SourceForge</a>.</p>
</div>
@ -87,8 +87,8 @@ from <a class="reference" href="http://sourceforge.net/project/showfiles.php?gro
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h1><a class="toc-backref" href="#id18" id="the-boost-distribution" name="the-boost-distribution">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></h1>
<div class="section" id="the-boost-distribution">
<h1><a class="toc-backref" href="#id19">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></h1>
<p>This is a sketch of the resulting directory structure:</p>
<pre class="literal-block">
<strong>boost_1_34_0</strong><strong>/</strong> .................<em>The “boost root directory”</em>
@ -165,8 +165,8 @@ contains a subset of the Boost documentation. Start with
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h1><a class="toc-backref" href="#id19" id="header-only-libraries" name="header-only-libraries">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></h1>
<div class="section" id="header-only-libraries">
<h1><a class="toc-backref" href="#id20">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></h1>
<p>The first thing many people want to know is, “how do I build
Boost?” The good news is that often, there's nothing to build.</p>
<div class="admonition-nothing-to-build admonition">
@ -176,12 +176,14 @@ of header files</em> containing templates and inline functions, and
require no separately-compiled library binaries or special
treatment when linking.</p>
</div>
<p id="separate">The only Boost libraries that <em>must</em> be built separately are:</p>
<!-- .. _separate: -->
<p>The only Boost libraries that <em>must</em> be built separately are:</p>
<ul class="simple">
<li><a class="reference" href="../../libs/filesystem/index.html">Boost.Filesystem</a></li>
<li><a class="reference" href="../../libs/iostreams/index.html">Boost.IOStreams</a></li>
<li><a class="reference" href="../../libs/program_options/index.html">Boost.ProgramOptions</a></li>
<li><a class="reference" href="../../libs/python/doc/building.html">Boost.Python</a></li>
<li><a class="reference" href="../../libs/python/doc/building.html">Boost.Python</a> (see the <a class="reference" href="../../libs/python/doc/building.html">Boost.Python build documentation</a>
before building and installing it)</li>
<li><a class="reference" href="../../libs/regex/index.html">Boost.Regex</a></li>
<li><a class="reference" href="../../libs/serialization/index.html">Boost.Serialization</a></li>
<li><a class="reference" href="../../libs/signals/index.html">Boost.Signals</a></li>
@ -203,8 +205,8 @@ use</strong>.</li>
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h1><a class="toc-backref" href="#id20" id="build-a-simple-program-using-boost" name="build-a-simple-program-using-boost">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a></h1>
<div class="section" id="build-a-simple-program-using-boost">
<h1><a class="toc-backref" href="#id21">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a></h1>
<p>To keep things simple, let's start by using a header-only library.
The following program reads a sequence of integers from standard
input, uses Boost.Lambda to multiply each number by three, and
@ -237,11 +239,11 @@ echo 1 2 3 | ./example
<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<div class="section">
<h2><a class="toc-backref" href="#id21" id="errors-and-warnings" name="errors-and-warnings">4.1&nbsp;&nbsp;&nbsp;Errors and Warnings</a></h2>
<div class="section" id="errors-and-warnings">
<h2><a class="toc-backref" href="#id22">4.1&nbsp;&nbsp;&nbsp;Errors and Warnings</a></h2>
<p>Don't be alarmed if you see compiler warnings originating in Boost
headers. We try to eliminate them, but doing so isn't always
practical.<a class="footnote-reference" href="#warnings" id="id4" name="id4"><sup>3</sup></a> <strong>Errors are another matter</strong>. If you're
practical.<a class="footnote-reference" href="#warnings" id="id5"><sup>3</sup></a> <strong>Errors are another matter</strong>. If you're
seeing compilation errors at this point in the tutorial, check to
be sure you've copied the <a class="reference" href="#build-a-simple-program-using-boost">example program</a> correctly and that you've
correctly identified the <a class="reference" href="#boost-root-directory">Boost root directory</a>.</p>
@ -250,12 +252,12 @@ correctly identified the <a class="reference" href="#boost-root-directory">Boost
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id22" id="prepare-to-use-a-boost-library-binary" name="prepare-to-use-a-boost-library-binary">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a></h1>
<div class="section" id="prepare-to-use-a-boost-library-binary">
<h1><a class="toc-backref" href="#id23">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a></h1>
<p>If you want to use any of the separately-compiled Boost libraries,
you'll need to acquire library binaries.</p>
<div class="section">
<h2><a class="toc-backref" href="#id23" id="easy-build-and-install" name="easy-build-and-install">5.1&nbsp;&nbsp;&nbsp;Easy Build and Install</a></h2>
<div class="section" id="easy-build-and-install">
<h2><a class="toc-backref" href="#id24">5.1&nbsp;&nbsp;&nbsp;Easy Build and Install</a></h2>
<p>Issue the following commands in the shell (don't type <tt class="docutils literal"><span class="pre">$</span></tt>; that
represents the shell's prompt):</p>
<pre class="literal-block">
@ -282,8 +284,8 @@ prefix, so you can henceforth use that directory as an <tt class="docutils liter
path in place of the Boost root directory.</p>
<p><a class="reference" href="#link-your-program-to-a-boost-library"><em>skip to the next step</em></a></p>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id24" id="or-custom-build-and-install" name="or-custom-build-and-install">5.2&nbsp;&nbsp;&nbsp;Or, Custom Build and Install</a></h2>
<div class="section" id="or-custom-build-and-install">
<h2><a class="toc-backref" href="#id25">5.2&nbsp;&nbsp;&nbsp;Or, Custom Build and Install</a></h2>
<p>If you're using a compiler other than your system's default, you'll
need to use <a class="reference" href="../../tools/build/index.html">Boost.Build</a> to create binaries. You'll also
use this method if you need a nonstandard build variant (see the
@ -294,8 +296,9 @@ use this method if you need a nonstandard build variant (see the
<p><a class="reference" href="../../tools/build/index.html">Boost.Build</a> is a text-based system for developing, testing, and
installing software. To use it, you'll need an executable called
<tt class="docutils literal"><span class="pre">bjam</span></tt>.</p>
<div class="section">
<h3><a class="toc-backref" href="#id25" id="get-bjam" name="get-bjam">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<!-- .. _Boost.Jam documentation: Boost.Jam_ -->
<div class="section" id="get-bjam">
<h3><a class="toc-backref" href="#id26">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<p><tt class="docutils literal"><span class="pre">bjam</span></tt> is the command-line tool that drives the Boost Build
system. To build Boost binaries, you'll invoke <tt class="docutils literal"><span class="pre">bjam</span></tt> from the
Boost root.</p>
@ -303,8 +306,8 @@ Boost root.</p>
Alternatively, you can build <tt class="docutils literal"><span class="pre">bjam</span></tt> yourself using <a class="reference" href="../../doc/html/jam/building.html">these
instructions</a>.</p>
</div>
<div class="section">
<h3><a class="toc-backref" href="#id26" id="identify-your-toolset" name="identify-your-toolset"><span id="toolset-name"></span><span id="toolset"></span>5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></h3>
<div class="section" id="identify-your-toolset">
<span id="toolset-name"></span><span id="toolset"></span><h3><a class="toc-backref" href="#id27">5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></h3>
<p>First, find the toolset corresponding to your compiler in the
following table.</p>
<table border="1" class="docutils">
@ -405,20 +408,20 @@ affect this step in any way; you still need to select a Boost.Build
toolset from the table.</p>
</div>
</div>
<div class="section">
<h3><a class="toc-backref" href="#id27" id="select-a-build-directory" name="select-a-build-directory"><span id="id9"></span><span id="build-directory"></span>5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></h3>
<div class="section" id="select-a-build-directory">
<span id="id10"></span><span id="build-directory"></span><h3><a class="toc-backref" href="#id28">5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></h3>
<p><a class="reference" href="../../tools/build/index.html">Boost.Build</a> will place all intermediate files it generates while
building into the <strong>build directory</strong>. If your Boost root
directory is writable, this step isn't strictly necessary: by
default Boost.Build will create a <tt class="docutils literal"><span class="pre">bin.v2/</span></tt> subdirectory for that
purpose in your current working directory.</p>
</div>
<div class="section">
<h3><a class="toc-backref" href="#id28" id="invoke-bjam" name="invoke-bjam">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<div class="section" id="invoke-bjam">
<h3><a class="toc-backref" href="#id29">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<p>Change your current directory to the Boost root directory and
invoke <tt class="docutils literal"><span class="pre">bjam</span></tt> as follows:</p>
<pre class="literal-block">
bjam <strong>--build-dir=</strong><a class="reference" href="#id9"><em>build-directory</em></a> <strong>--toolset=</strong><a class="reference" href="#toolset-name"><em>toolset-name</em></a> stage
bjam <strong>--build-dir=</strong><a class="reference" href="#id10"><em>build-directory</em></a> <strong>--toolset=</strong><a class="reference" href="#toolset-name"><em>toolset-name</em></a> stage
</pre>
<p>For example, your session might look like this:</p>
<pre class="literal-block">
@ -450,8 +453,8 @@ be interested in:</p>
</ul>
</div>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id29" id="expected-build-output" name="expected-build-output">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></h2>
<div class="section" id="expected-build-output">
<h2><a class="toc-backref" href="#id30">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></h2>
<p>During the process of building Boost libraries, you can expect to
see some messages printed on the console. These may include</p>
<ul>
@ -474,8 +477,8 @@ look something like:</p>
</li>
</ul>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id30" id="in-case-of-build-errors" name="in-case-of-build-errors">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></h2>
<div class="section" id="in-case-of-build-errors">
<h2><a class="toc-backref" href="#id31">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></h2>
<p>The only error messages you see when building Boost—if any—should
be related to the IOStreams library's support of zip and bzip2
formats as described <a class="reference" href="../../libs/iostreams/doc/installation.html">here</a>. Install the relevant development
@ -492,8 +495,8 @@ questions about configuring Boost for your compiler to the
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id31" id="link-your-program-to-a-boost-library" name="link-your-program-to-a-boost-library">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a></h1>
<div class="section" id="link-your-program-to-a-boost-library">
<h1><a class="toc-backref" href="#id32">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a></h1>
<p>To demonstrate linking with a Boost binary library, we'll use the
following simple program that extracts the subject lines from
emails. It uses the <a class="reference" href="../../libs/regex/index.html">Boost.Regex</a> library, which has a
@ -533,7 +536,7 @@ $ c++ -I <em>path/to/</em><tt class="docutils literal"><span class="pre">boost_1
<strong>~/boost/lib/libboost_regex-gcc-3.4-mt-d-1_34.a</strong>
</pre>
</li>
<li><p class="first">You can separately specify a directory to search (with <tt class="docutils literal"><span class="pre">-L</span></tt><em>directory</em>) and a library name to search for (with <tt class="docutils literal"><span class="pre">-l</span></tt><em>library</em>,<a class="footnote-reference" href="#lowercase-l" id="id11" name="id11"><sup>2</sup></a> dropping the filename's leading <tt class="docutils literal"><span class="pre">lib</span></tt> and trailing
<li><p class="first">You can separately specify a directory to search (with <tt class="docutils literal"><span class="pre">-L</span></tt><em>directory</em>) and a library name to search for (with <tt class="docutils literal"><span class="pre">-l</span></tt><em>library</em>,<a class="footnote-reference" href="#lowercase-l" id="id12"><sup>2</sup></a> dropping the filename's leading <tt class="docutils literal"><span class="pre">lib</span></tt> and trailing
suffix (<tt class="docutils literal"><span class="pre">.a</span></tt> in this case):</p>
<pre class="literal-block">
$ c++ -I <em>path/to/</em><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt> example.cpp -o example <strong>\</strong>
@ -550,8 +553,8 @@ automatically for you unless you pass a special option such as
</ol>
<p>In both cases above, the bold text is what you'd add to <a class="reference" href="#build-a-simple-program-using-boost">the
command lines we explored earlier</a>.</p>
<div class="section">
<h2><a class="toc-backref" href="#id32" id="library-naming" name="library-naming">6.1&nbsp;&nbsp;&nbsp;Library Naming</a></h2>
<div class="section" id="library-naming">
<h2><a class="toc-backref" href="#id33">6.1&nbsp;&nbsp;&nbsp;Library Naming</a></h2>
<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
@ -566,11 +569,11 @@ following elements:</p>
<dd><em>Prefix</em>: except on Microsoft Windows, every Boost library
name begins with this string. On Windows, only ordinary static
libraries use the <tt class="docutils literal"><span class="pre">lib</span></tt> prefix; import libraries and DLLs do
not.<a class="footnote-reference" href="#distinct" id="id13" name="id13"><sup>4</sup></a></dd>
not.<a class="footnote-reference" href="#distinct" id="id14"><sup>4</sup></a></dd>
<dt><tt class="docutils literal"><span class="pre">boost_regex</span></tt></dt>
<dd><em>Library name</em>: all boost library filenames begin with <tt class="docutils literal"><span class="pre">boost_</span></tt>.</dd>
<dt><tt class="docutils literal"><span class="pre">-vc71</span></tt></dt>
<dd><em>Toolset tag</em>: identifies the toolset and version used to build
<dd><em>Toolset tag</em>: identifies the <a class="reference" href="#toolset">toolset</a> and version used to build
the binary.</dd>
<dt><tt class="docutils literal"><span class="pre">-mt</span></tt></dt>
<dd><em>Threading tag</em>: indicates that the library was
@ -604,14 +607,14 @@ libraries.</td>
<td>using a special <a class="reference" href="../../libs/python/doc/building.html#variants">debug build of Python</a>.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">d</span></tt></td>
<td>building a debug version of your code.<a class="footnote-reference" href="#debug-abi" id="id14" name="id14"><sup>5</sup></a></td>
<td>building a debug version of your code.<a class="footnote-reference" href="#debug-abi" id="id15"><sup>5</sup></a></td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">p</span></tt></td>
<td>using the STLPort standard library rather than the default one supplied with
your compiler.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">n</span></tt></td>
<td>using STLPort's deprecated “native iostreams” feature.<a class="footnote-reference" href="#native" id="id15" name="id15"><sup>6</sup></a></td>
<td>using STLPort's deprecated “native iostreams” feature.<a class="footnote-reference" href="#native" id="id16"><sup>6</sup></a></td>
</tr>
</tbody>
</table>
@ -632,18 +635,19 @@ convention. On most unix-style platforms the extensions are
<tt class="docutils literal"><span class="pre">.a</span></tt> and <tt class="docutils literal"><span class="pre">.so</span></tt> for static libraries (archives) and shared
libraries, respectively. On Windows, <tt class="docutils literal"><span class="pre">.dll</span></tt> indicates a shared
library and (except for static libraries built by the <tt class="docutils literal"><span class="pre">gcc</span></tt>
toolset, whose names always end in <tt class="docutils literal"><span class="pre">.a</span></tt>) <tt class="docutils literal"><span class="pre">.lib</span></tt> indicates a
<a class="reference" href="#toolset">toolset</a>, whose names always end in <tt class="docutils literal"><span class="pre">.a</span></tt>) <tt class="docutils literal"><span class="pre">.lib</span></tt> indicates a
static or import library. Where supported by toolsets on unix
variants, a full version extension is added (e.g. &quot;.so.1.34&quot;) and
a symbolic link to the library file, named without the trailing
version number, will also be created.</dd>
</dl>
<!-- .. _Boost.Build toolset names: toolset-name_ -->
<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h2><a class="toc-backref" href="#id33" id="test-your-program" name="test-your-program">6.2&nbsp;&nbsp;&nbsp;Test Your Program</a></h2>
<div class="section" id="test-your-program">
<h2><a class="toc-backref" href="#id34">6.2&nbsp;&nbsp;&nbsp;Test Your Program</a></h2>
<p>To test our subject extraction, we'll filter the following text
file. Copy it out of your browser and save it as <tt class="docutils literal"><span class="pre">jayne.txt</span></tt>:</p>
<pre class="literal-block">
@ -682,8 +686,8 @@ Spoil Rock Hunter?”</p>
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id34" id="conclusion-and-further-resources" name="conclusion-and-further-resources">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></h1>
<div class="section" id="conclusion-and-further-resources">
<h1><a class="toc-backref" href="#id35">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></h1>
<p>This concludes your introduction to Boost and to integrating it
with your programs. As you start using Boost in earnest, there are
surely a few additional points you'll wish we had covered. One day
@ -711,7 +715,7 @@ mailing list</a>.</p>
<table class="docutils footnote" frame="void" id="packagers" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id2" name="packagers">[1]</a></td><td><p class="first">If developers of Boost packages would like to work
<tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td><p class="first">If developers of Boost packages would like to work
with us to make sure these instructions can be used with their
packages, we'd be glad to help. Please make your interest known
to the <a class="reference" href="../../more/mailing_lists.htm#main">Boost developers' list</a>.</p>
@ -721,7 +725,7 @@ to the <a class="reference" href="../../more/mailing_lists.htm#main">Boost devel
<table class="docutils footnote" frame="void" id="lowercase-l" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id11" name="lowercase-l">[2]</a></td><td>That option is a dash followed by a lowercase “L”
<tr><td class="label"><a class="fn-backref" href="#id12">[2]</a></td><td>That option is a dash followed by a lowercase “L”
character, which looks very much like a numeral 1 in some fonts.</td></tr>
</tbody>
</table>
@ -731,7 +735,7 @@ character, which looks very much like a numeral 1 in some fonts.</td></tr>
<table class="docutils footnote" frame="void" id="warnings" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id4" name="warnings">[3]</a></td><td>Remember that warnings are specific to each compiler
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>Remember that warnings are specific to each compiler
implementation. The developer of a given Boost library might
not have access to your compiler. Also, some warnings are
extremely difficult to eliminate in generic code, to the point
@ -742,7 +746,7 @@ have any source code mechanism for suppressing warnings.</td></tr>
<table class="docutils footnote" frame="void" id="distinct" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id13" name="distinct">[4]</a></td><td>This convention distinguishes the static version of
<tr><td class="label"><a class="fn-backref" href="#id14">[4]</a></td><td>This convention distinguishes the static version of
a Boost library from the import library for an
identically-configured Boost DLL, which would otherwise have the
same name.</td></tr>
@ -751,7 +755,7 @@ same name.</td></tr>
<table class="docutils footnote" frame="void" id="debug-abi" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id14" name="debug-abi">[5]</a></td><td>These libraries were compiled without optimization
<tr><td class="label"><a class="fn-backref" href="#id15">[5]</a></td><td>These libraries were compiled without optimization
or inlining, with full debug symbols enabled, and without
<tt class="docutils literal"><span class="pre">NDEBUG</span></tt> <tt class="docutils literal"><span class="pre">#define</span></tt>d. Although it's true that sometimes
these choices don't affect binary compatibility with other
@ -761,7 +765,7 @@ compiled code, you can't count on that with Boost libraries.</td></tr>
<table class="docutils footnote" frame="void" id="native" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id15" name="native">[6]</a></td><td>This feature of STLPort is deprecated because it's
<tr><td class="label"><a class="fn-backref" href="#id16">[6]</a></td><td>This feature of STLPort is deprecated because it's
impossible to make it work transparently to the user; we don't
recommend it.</td></tr>
</tbody>

View File

@ -40,7 +40,7 @@ distribution from SourceForge_:
.. _SourceForge: `sf-download`_
1. Download |boost.tar.bz2|.
1. Download |boost.tar.bz2|_.
2. In the directory where you want to put the Boost installation,
execute

View File

@ -23,43 +23,43 @@ should follow the instructions for <a class="reference" href="unix-variants.html
variants</a>. Other command shells, such as <a class="reference" href="http://mingw.org">MinGW</a>'s MSYS, are
not supported—they may or may not work.</p>
</div>
<div class="contents topic">
<p class="topic-title first"><a id="index" name="index">Index</a></p>
<div class="contents topic" id="index">
<p class="topic-title first">Index</p>
<ul class="auto-toc simple">
<li><a class="reference" href="#get-boost" id="id21" name="id21">1&nbsp;&nbsp;&nbsp;Get Boost</a></li>
<li><a class="reference" href="#the-boost-distribution" id="id22" name="id22">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></li>
<li><a class="reference" href="#header-only-libraries" id="id23" name="id23">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></li>
<li><a class="reference" href="#build-a-simple-program-using-boost" id="id24" name="id24">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a><ul class="auto-toc">
<li><a class="reference" href="#build-from-the-visual-studio-ide" id="id25" name="id25">4.1&nbsp;&nbsp;&nbsp;Build From the Visual Studio IDE</a></li>
<li><a class="reference" href="#or-build-from-the-command-prompt" id="id26" name="id26">4.2&nbsp;&nbsp;&nbsp;Or, Build From the Command Prompt</a></li>
<li><a class="reference" href="#errors-and-warnings" id="id27" name="id27">4.3&nbsp;&nbsp;&nbsp;Errors and Warnings</a></li>
<li><a class="reference" href="#get-boost" id="id22">1&nbsp;&nbsp;&nbsp;Get Boost</a></li>
<li><a class="reference" href="#the-boost-distribution" id="id23">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></li>
<li><a class="reference" href="#header-only-libraries" id="id24">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></li>
<li><a class="reference" href="#build-a-simple-program-using-boost" id="id25">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a><ul class="auto-toc">
<li><a class="reference" href="#build-from-the-visual-studio-ide" id="id26">4.1&nbsp;&nbsp;&nbsp;Build From the Visual Studio IDE</a></li>
<li><a class="reference" href="#or-build-from-the-command-prompt" id="id27">4.2&nbsp;&nbsp;&nbsp;Or, Build From the Command Prompt</a></li>
<li><a class="reference" href="#errors-and-warnings" id="id28">4.3&nbsp;&nbsp;&nbsp;Errors and Warnings</a></li>
</ul>
</li>
<li><a class="reference" href="#prepare-to-use-a-boost-library-binary" id="id28" name="id28">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a><ul class="auto-toc">
<li><a class="reference" href="#install-visual-studio-2005-or-net-2003-binaries" id="id29" name="id29">5.1&nbsp;&nbsp;&nbsp;Install Visual Studio (2005 or .NET 2003) Binaries</a></li>
<li><a class="reference" href="#or-build-and-install-binaries-from-source" id="id30" name="id30">5.2&nbsp;&nbsp;&nbsp;Or, Build and Install Binaries From Source</a><ul class="auto-toc">
<li><a class="reference" href="#get-bjam" id="id31" name="id31">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
<li><a class="reference" href="#identify-your-toolset" id="id32" name="id32">5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></li>
<li><a class="reference" href="#select-a-build-directory" id="id33" name="id33">5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></li>
<li><a class="reference" href="#invoke-bjam" id="id34" name="id34">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
<li><a class="reference" href="#prepare-to-use-a-boost-library-binary" id="id29">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a><ul class="auto-toc">
<li><a class="reference" href="#install-visual-studio-2005-or-net-2003-binaries" id="id30">5.1&nbsp;&nbsp;&nbsp;Install Visual Studio (2005 or .NET 2003) Binaries</a></li>
<li><a class="reference" href="#or-build-and-install-binaries-from-source" id="id31">5.2&nbsp;&nbsp;&nbsp;Or, Build and Install Binaries From Source</a><ul class="auto-toc">
<li><a class="reference" href="#get-bjam" id="id32">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
<li><a class="reference" href="#identify-your-toolset" id="id33">5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></li>
<li><a class="reference" href="#select-a-build-directory" id="id34">5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></li>
<li><a class="reference" href="#invoke-bjam" id="id35">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></li>
</ul>
</li>
<li><a class="reference" href="#expected-build-output" id="id35" name="id35">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></li>
<li><a class="reference" href="#in-case-of-build-errors" id="id36" name="id36">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></li>
<li><a class="reference" href="#expected-build-output" id="id36">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></li>
<li><a class="reference" href="#in-case-of-build-errors" id="id37">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></li>
</ul>
</li>
<li><a class="reference" href="#link-your-program-to-a-boost-library" id="id37" name="id37">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a><ul class="auto-toc">
<li><a class="reference" href="#link-from-within-the-visual-studio-ide" id="id38" name="id38">6.1&nbsp;&nbsp;&nbsp;Link From Within the Visual Studio IDE</a></li>
<li><a class="reference" href="#or-link-from-the-command-prompt" id="id39" name="id39">6.2&nbsp;&nbsp;&nbsp;Or, Link From the Command Prompt</a></li>
<li><a class="reference" href="#library-naming" id="id40" name="id40">6.3&nbsp;&nbsp;&nbsp;Library Naming</a></li>
<li><a class="reference" href="#test-your-program" id="id41" name="id41">6.4&nbsp;&nbsp;&nbsp;Test Your Program</a></li>
<li><a class="reference" href="#link-your-program-to-a-boost-library" id="id38">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a><ul class="auto-toc">
<li><a class="reference" href="#link-from-within-the-visual-studio-ide" id="id39">6.1&nbsp;&nbsp;&nbsp;Link From Within the Visual Studio IDE</a></li>
<li><a class="reference" href="#or-link-from-the-command-prompt" id="id40">6.2&nbsp;&nbsp;&nbsp;Or, Link From the Command Prompt</a></li>
<li><a class="reference" href="#library-naming" id="id41">6.3&nbsp;&nbsp;&nbsp;Library Naming</a></li>
<li><a class="reference" href="#test-your-program" id="id42">6.4&nbsp;&nbsp;&nbsp;Test Your Program</a></li>
</ul>
</li>
<li><a class="reference" href="#conclusion-and-further-resources" id="id42" name="id42">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></li>
<li><a class="reference" href="#conclusion-and-further-resources" id="id43">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></li>
</ul>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id21" id="get-boost" name="get-boost">1&nbsp;&nbsp;&nbsp;Get Boost</a></h1>
<div class="section" id="get-boost">
<h1><a class="toc-backref" href="#id22">1&nbsp;&nbsp;&nbsp;Get Boost</a></h1>
<p>The easiest way to get a copy of Boost is to use the <a class="reference" href="http://www.boost-consulting.com/download/windows">installer</a>
provided by <a class="reference" href="http://www.boost-consulting.com">Boost Consulting</a>. We especially recommend this
method if you use Microsoft Visual Studio .NET 2003 or Microsoft
@ -70,13 +70,13 @@ install the <a class="reference" href="../../libs/regex/index.html">Boost.Regex<
<p>If you're using an earlier version of Visual Studio or some other
compiler, or if you prefer to build everything yourself, you can
download <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=376197"><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt><tt class="docutils literal"><span class="pre">.exe</span></tt></a> and run it to install a complete Boost
distribution.<a class="footnote-reference" href="#zip" id="id2" name="id2"><sup>1</sup></a></p>
distribution.<a class="footnote-reference" href="#zip" id="id2"><sup>1</sup></a></p>
<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h1><a class="toc-backref" href="#id22" id="the-boost-distribution" name="the-boost-distribution">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></h1>
<div class="section" id="the-boost-distribution">
<h1><a class="toc-backref" href="#id23">2&nbsp;&nbsp;&nbsp;The Boost Distribution</a></h1>
<p>This is a sketch of the resulting directory structure:</p>
<pre class="literal-block">
<strong>boost_1_34_0</strong><strong>\</strong> .................<em>The “boost root directory”</em>
@ -158,8 +158,8 @@ contains a subset of the Boost documentation. Start with
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h1><a class="toc-backref" href="#id23" id="header-only-libraries" name="header-only-libraries">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></h1>
<div class="section" id="header-only-libraries">
<h1><a class="toc-backref" href="#id24">3&nbsp;&nbsp;&nbsp;Header-Only Libraries</a></h1>
<p>The first thing many people want to know is, “how do I build
Boost?” The good news is that often, there's nothing to build.</p>
<div class="admonition-nothing-to-build admonition">
@ -169,12 +169,14 @@ of header files</em> containing templates and inline functions, and
require no separately-compiled library binaries or special
treatment when linking.</p>
</div>
<p id="separate">The only Boost libraries that <em>must</em> be built separately are:</p>
<!-- .. _separate: -->
<p>The only Boost libraries that <em>must</em> be built separately are:</p>
<ul class="simple">
<li><a class="reference" href="../../libs/filesystem/index.html">Boost.Filesystem</a></li>
<li><a class="reference" href="../../libs/iostreams/index.html">Boost.IOStreams</a></li>
<li><a class="reference" href="../../libs/program_options/index.html">Boost.ProgramOptions</a></li>
<li><a class="reference" href="../../libs/python/doc/building.html">Boost.Python</a></li>
<li><a class="reference" href="../../libs/python/doc/building.html">Boost.Python</a> (see the <a class="reference" href="../../libs/python/doc/building.html">Boost.Python build documentation</a>
before building and installing it)</li>
<li><a class="reference" href="../../libs/regex/index.html">Boost.Regex</a></li>
<li><a class="reference" href="../../libs/serialization/index.html">Boost.Serialization</a></li>
<li><a class="reference" href="../../libs/signals/index.html">Boost.Signals</a></li>
@ -196,8 +198,8 @@ use</strong>.</li>
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h1><a class="toc-backref" href="#id24" id="build-a-simple-program-using-boost" name="build-a-simple-program-using-boost">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a></h1>
<div class="section" id="build-a-simple-program-using-boost">
<h1><a class="toc-backref" href="#id25">4&nbsp;&nbsp;&nbsp;Build a Simple Program Using Boost</a></h1>
<p>To keep things simple, let's start by using a header-only library.
The following program reads a sequence of integers from standard
input, uses Boost.Lambda to multiply each number by three, and
@ -218,8 +220,8 @@ int main()
}
</pre>
<p>Copy the text of this program into a file called <tt class="docutils literal"><span class="pre">example.cpp</span></tt>.</p>
<div class="note">
<p class="first admonition-title"><a id="command-line-tool" name="command-line-tool"><span id="command-prompt"></span>Note</a></p>
<div class="note" id="command-line-tool">
<span id="command-prompt"></span><p class="first admonition-title">Note</p>
<p class="last">To build the examples in this guide, you can use an
Integrated Development Environment (IDE) like Visual Studio, or
you can issue commands from the <a class="reference" href="#command-prompt">command prompt</a>. Since every
@ -252,8 +254,8 @@ cd <tt class="docutils literal"><span class="pre">C:\Program</span> <span class=
caret (<tt class="docutils literal"><span class="pre">^</span></tt>) at the end of all but the last line. Some examples
on this page use that technique to save horizontal space.</p>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id25" id="build-from-the-visual-studio-ide" name="build-from-the-visual-studio-ide"><span id="vs-header-only"></span>4.1&nbsp;&nbsp;&nbsp;Build From the Visual Studio IDE</a></h2>
<div class="section" id="build-from-the-visual-studio-ide">
<span id="vs-header-only"></span><h2><a class="toc-backref" href="#id26">4.1&nbsp;&nbsp;&nbsp;Build From the Visual Studio IDE</a></h2>
<ul>
<li><p class="first">From Visual Studio's <em>File</em> menu, select <em>New</em> &gt; <em>Project…</em></p>
</li>
@ -276,7 +278,7 @@ Directories</em>, enter the path to the Boost root directory, for example</p>
</li>
<li><p class="first">In <em>Configuration Properties</em> &gt; <em>C/C++</em> &gt; <em>Precompiled Headers</em>, change
<em>Use Precompiled Header (/Yu)</em> to <em>Not Using Precompiled
Headers</em>.<a class="footnote-reference" href="#pch" id="id4" name="id4"><sup>3</sup></a></p>
Headers</em>.<a class="footnote-reference" href="#pch" id="id5"><sup>3</sup></a></p>
</li>
<li><p class="first">Replace the contents of the <tt class="docutils literal"><span class="pre">example.cpp</span></tt> generated by the IDE
with the example code above.</p>
@ -293,8 +295,8 @@ into the resulting window, followed by the Return key:</p>
Return key.</p>
<p><a class="reference" href="#errors-and-warnings"><em>skip to the next step</em></a></p>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id26" id="or-build-from-the-command-prompt" name="or-build-from-the-command-prompt">4.2&nbsp;&nbsp;&nbsp;Or, Build From the Command Prompt</a></h2>
<div class="section" id="or-build-from-the-command-prompt">
<h2><a class="toc-backref" href="#id27">4.2&nbsp;&nbsp;&nbsp;Or, Build From the Command Prompt</a></h2>
<p>From your computer's <em>Start</em> menu, if you are a Visual
Studio 2005 user, select</p>
<blockquote>
@ -319,11 +321,11 @@ echo 1 2 3 | example
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h2><a class="toc-backref" href="#id27" id="errors-and-warnings" name="errors-and-warnings">4.3&nbsp;&nbsp;&nbsp;Errors and Warnings</a></h2>
<div class="section" id="errors-and-warnings">
<h2><a class="toc-backref" href="#id28">4.3&nbsp;&nbsp;&nbsp;Errors and Warnings</a></h2>
<p>Don't be alarmed if you see compiler warnings originating in Boost
headers. We try to eliminate them, but doing so isn't always
practical.<a class="footnote-reference" href="#warnings" id="id6" name="id6"><sup>5</sup></a> <strong>Errors are another matter</strong>. If you're
practical.<a class="footnote-reference" href="#warnings" id="id7"><sup>5</sup></a> <strong>Errors are another matter</strong>. If you're
seeing compilation errors at this point in the tutorial, check to
be sure you've copied the <a class="reference" href="#build-a-simple-program-using-boost">example program</a> correctly and that you've
correctly identified the <a class="reference" href="#boost-root-directory">Boost root directory</a>.</p>
@ -332,12 +334,12 @@ correctly identified the <a class="reference" href="#boost-root-directory">Boost
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id28" id="prepare-to-use-a-boost-library-binary" name="prepare-to-use-a-boost-library-binary">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a></h1>
<div class="section" id="prepare-to-use-a-boost-library-binary">
<h1><a class="toc-backref" href="#id29">5&nbsp;&nbsp;&nbsp;Prepare to Use a Boost Library Binary</a></h1>
<p>If you want to use any of the separately-compiled Boost libraries,
you'll need to acquire library binaries.</p>
<div class="section">
<h2><a class="toc-backref" href="#id29" id="install-visual-studio-2005-or-net-2003-binaries" name="install-visual-studio-2005-or-net-2003-binaries">5.1&nbsp;&nbsp;&nbsp;Install Visual Studio (2005 or .NET 2003) Binaries</a></h2>
<div class="section" id="install-visual-studio-2005-or-net-2003-binaries">
<h2><a class="toc-backref" href="#id30">5.1&nbsp;&nbsp;&nbsp;Install Visual Studio (2005 or .NET 2003) Binaries</a></h2>
<p>The <a class="reference" href="http://www.boost-consulting.com/download/windows">installer</a> supplied by Boost Consulting will download and
install pre-compiled binaries into the <tt class="docutils literal"><span class="pre">lib\</span></tt> subdirectory of the
boost root, typically <tt class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt><tt class="docutils literal"><span class="pre">\lib\</span></tt>. If you installed
@ -346,8 +348,8 @@ step. Otherwise, please run the installer again and install them
now.</p>
<p><a class="reference" href="#link-your-program-to-a-boost-library"><em>skip to the next step</em></a></p>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id30" id="or-build-and-install-binaries-from-source" name="or-build-and-install-binaries-from-source">5.2&nbsp;&nbsp;&nbsp;Or, Build and Install Binaries From Source</a></h2>
<div class="section" id="or-build-and-install-binaries-from-source">
<h2><a class="toc-backref" href="#id31">5.2&nbsp;&nbsp;&nbsp;Or, Build and Install Binaries From Source</a></h2>
<p>If you're using an earlier version of Visual C++, or a compiler
from another vendor, you'll need to use <a class="reference" href="../../tools/build/index.html">Boost.Build</a> to create your
own binaries.</p>
@ -357,8 +359,9 @@ own binaries.</p>
<p><a class="reference" href="../../tools/build/index.html">Boost.Build</a> is a text-based system for developing, testing, and
installing software. To use it, you'll need an executable called
<tt class="docutils literal"><span class="pre">bjam</span></tt>.</p>
<div class="section">
<h3><a class="toc-backref" href="#id31" id="get-bjam" name="get-bjam">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<!-- .. _Boost.Jam documentation: Boost.Jam_ -->
<div class="section" id="get-bjam">
<h3><a class="toc-backref" href="#id32">5.2.1&nbsp;&nbsp;&nbsp;Get <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<p><tt class="docutils literal"><span class="pre">bjam</span></tt> is the <a class="reference" href="#command-line-tool">command-line tool</a> that drives the Boost Build
system. To build Boost binaries, you'll invoke <tt class="docutils literal"><span class="pre">bjam</span></tt> from the
Boost root.</p>
@ -366,8 +369,8 @@ Boost root.</p>
Alternatively, you can build <tt class="docutils literal"><span class="pre">bjam</span></tt> yourself using <a class="reference" href="../../doc/html/jam/building.html">these
instructions</a>.</p>
</div>
<div class="section">
<h3><a class="toc-backref" href="#id32" id="identify-your-toolset" name="identify-your-toolset"><span id="toolset-name"></span><span id="toolset"></span>5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></h3>
<div class="section" id="identify-your-toolset">
<span id="toolset-name"></span><span id="toolset"></span><h3><a class="toc-backref" href="#id33">5.2.2&nbsp;&nbsp;&nbsp;Identify Your Toolset</a></h3>
<p>First, find the toolset corresponding to your compiler in the
following table.</p>
<table border="1" class="docutils">
@ -468,22 +471,22 @@ affect this step in any way; you still need to select a Boost.Build
toolset from the table.</p>
</div>
</div>
<div class="section">
<h3><a class="toc-backref" href="#id33" id="select-a-build-directory" name="select-a-build-directory"><span id="id11"></span><span id="build-directory"></span>5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></h3>
<div class="section" id="select-a-build-directory">
<span id="id12"></span><span id="build-directory"></span><h3><a class="toc-backref" href="#id34">5.2.3&nbsp;&nbsp;&nbsp;Select a Build Directory</a></h3>
<p><a class="reference" href="../../tools/build/index.html">Boost.Build</a> will place all intermediate files it generates while
building into the <strong>build directory</strong>. If your Boost root
directory is writable, this step isn't strictly necessary: by
default Boost.Build will create a <tt class="docutils literal"><span class="pre">bin.v2/</span></tt> subdirectory for that
purpose in your current working directory.</p>
</div>
<div class="section">
<h3><a class="toc-backref" href="#id34" id="invoke-bjam" name="invoke-bjam">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<div class="section" id="invoke-bjam">
<h3><a class="toc-backref" href="#id35">5.2.4&nbsp;&nbsp;&nbsp;Invoke <tt class="docutils literal"><span class="pre">bjam</span></tt></a></h3>
<p>Change your current directory to the Boost root directory and
invoke <tt class="docutils literal"><span class="pre">bjam</span></tt> as follows:</p>
<pre class="literal-block">
bjam <strong>--build-dir=</strong><a class="reference" href="#id11"><em>build-directory</em></a> <strong>--toolset=</strong><a class="reference" href="#toolset-name"><em>toolset-name</em></a> stage
bjam <strong>--build-dir=</strong><a class="reference" href="#id12"><em>build-directory</em></a> <strong>--toolset=</strong><a class="reference" href="#toolset-name"><em>toolset-name</em></a> stage
</pre>
<p>For example, your session might look like this:<a class="footnote-reference" href="#continuation" id="id12" name="id12"><sup>4</sup></a></p>
<p>For example, your session might look like this:<a class="footnote-reference" href="#continuation" id="id13"><sup>4</sup></a></p>
<pre class="literal-block">
C:WINDOWS&gt; cd <tt class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>
<tt class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>&gt; bjam <strong>^</strong>
@ -515,8 +518,8 @@ be interested in:</p>
</ul>
</div>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id35" id="expected-build-output" name="expected-build-output">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></h2>
<div class="section" id="expected-build-output">
<h2><a class="toc-backref" href="#id36">5.3&nbsp;&nbsp;&nbsp;Expected Build Output</a></h2>
<p>During the process of building Boost libraries, you can expect to
see some messages printed on the console. These may include</p>
<ul>
@ -539,8 +542,8 @@ look something like:</p>
</li>
</ul>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id36" id="in-case-of-build-errors" name="in-case-of-build-errors">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></h2>
<div class="section" id="in-case-of-build-errors">
<h2><a class="toc-backref" href="#id37">5.4&nbsp;&nbsp;&nbsp;In Case of Build Errors</a></h2>
<p>The only error messages you see when building Boost—if any—should
be related to the IOStreams library's support of zip and bzip2
formats as described <a class="reference" href="../../libs/iostreams/doc/installation.html">here</a>. Install the relevant development
@ -557,8 +560,8 @@ questions about configuring Boost for your compiler to the
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id37" id="link-your-program-to-a-boost-library" name="link-your-program-to-a-boost-library">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a></h1>
<div class="section" id="link-your-program-to-a-boost-library">
<h1><a class="toc-backref" href="#id38">6&nbsp;&nbsp;&nbsp;Link Your Program to a Boost Library</a></h1>
<p>To demonstrate linking with a Boost binary library, we'll use the
following simple program that extracts the subject lines from
emails. It uses the <a class="reference" href="../../libs/regex/index.html">Boost.Regex</a> library, which has a
@ -599,8 +602,8 @@ information to encode the name of the correct library into your
object files; the linker selects the library with that name from
the directories you've told it to search.</p>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id38" id="link-from-within-the-visual-studio-ide" name="link-from-within-the-visual-studio-ide">6.1&nbsp;&nbsp;&nbsp;Link From Within the Visual Studio IDE</a></h2>
<div class="section" id="link-from-within-the-visual-studio-ide">
<h2><a class="toc-backref" href="#id39">6.1&nbsp;&nbsp;&nbsp;Link From Within the Visual Studio IDE</a></h2>
<p>Starting with the <a class="reference" href="#vs-header-only">header-only example project</a> we created
earlier:</p>
<ol class="arabic simple">
@ -613,8 +616,8 @@ e.g. <tt class="docutils literal"><span class="pre">C:\Program</span> <span clas
</ol>
<p><a class="reference" href="#test-your-program"><em>skip to the next step</em></a></p>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id39" id="or-link-from-the-command-prompt" name="or-link-from-the-command-prompt">6.2&nbsp;&nbsp;&nbsp;Or, Link From the Command Prompt</a></h2>
<div class="section" id="or-link-from-the-command-prompt">
<h2><a class="toc-backref" href="#id40">6.2&nbsp;&nbsp;&nbsp;Or, Link From the Command Prompt</a></h2>
<p>For example, we can compile and link the above program from the
Visual C++ command-line by simply adding the <strong>bold</strong> text below to
the command line we used earlier, assuming your Boost binaries are
@ -624,8 +627,8 @@ cl /EHsc /I <em>path\to\</em><tt class="docutils literal"><span class="pre">boos
<strong>/link /LIBPATH:</strong> <strong>C:\Program Files\boost\</strong><strong>boost_1_34_0</strong><strong>\lib</strong>
</pre>
</div>
<div class="section">
<h2><a class="toc-backref" href="#id40" id="library-naming" name="library-naming">6.3&nbsp;&nbsp;&nbsp;Library Naming</a></h2>
<div class="section" id="library-naming">
<h2><a class="toc-backref" href="#id41">6.3&nbsp;&nbsp;&nbsp;Library Naming</a></h2>
<div class="note">
<p class="first admonition-title">Note</p>
<p>If, like Visual C++, your compiler supports auto-linking,
@ -647,11 +650,11 @@ following elements:</p>
<dd><em>Prefix</em>: except on Microsoft Windows, every Boost library
name begins with this string. On Windows, only ordinary static
libraries use the <tt class="docutils literal"><span class="pre">lib</span></tt> prefix; import libraries and DLLs do
not.<a class="footnote-reference" href="#distinct" id="id17" name="id17"><sup>6</sup></a></dd>
not.<a class="footnote-reference" href="#distinct" id="id18"><sup>6</sup></a></dd>
<dt><tt class="docutils literal"><span class="pre">boost_regex</span></tt></dt>
<dd><em>Library name</em>: all boost library filenames begin with <tt class="docutils literal"><span class="pre">boost_</span></tt>.</dd>
<dt><tt class="docutils literal"><span class="pre">-vc71</span></tt></dt>
<dd><em>Toolset tag</em>: identifies the toolset and version used to build
<dd><em>Toolset tag</em>: identifies the <a class="reference" href="#toolset">toolset</a> and version used to build
the binary.</dd>
<dt><tt class="docutils literal"><span class="pre">-mt</span></tt></dt>
<dd><em>Threading tag</em>: indicates that the library was
@ -685,14 +688,14 @@ libraries.</td>
<td>using a special <a class="reference" href="../../libs/python/doc/building.html#variants">debug build of Python</a>.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">d</span></tt></td>
<td>building a debug version of your code.<a class="footnote-reference" href="#debug-abi" id="id18" name="id18"><sup>7</sup></a></td>
<td>building a debug version of your code.<a class="footnote-reference" href="#debug-abi" id="id19"><sup>7</sup></a></td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">p</span></tt></td>
<td>using the STLPort standard library rather than the default one supplied with
your compiler.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">n</span></tt></td>
<td>using STLPort's deprecated “native iostreams” feature.<a class="footnote-reference" href="#native" id="id19" name="id19"><sup>8</sup></a></td>
<td>using STLPort's deprecated “native iostreams” feature.<a class="footnote-reference" href="#native" id="id20"><sup>8</sup></a></td>
</tr>
</tbody>
</table>
@ -713,18 +716,19 @@ convention. On most unix-style platforms the extensions are
<tt class="docutils literal"><span class="pre">.a</span></tt> and <tt class="docutils literal"><span class="pre">.so</span></tt> for static libraries (archives) and shared
libraries, respectively. On Windows, <tt class="docutils literal"><span class="pre">.dll</span></tt> indicates a shared
library and (except for static libraries built by the <tt class="docutils literal"><span class="pre">gcc</span></tt>
toolset, whose names always end in <tt class="docutils literal"><span class="pre">.a</span></tt>) <tt class="docutils literal"><span class="pre">.lib</span></tt> indicates a
<a class="reference" href="#toolset">toolset</a>, whose names always end in <tt class="docutils literal"><span class="pre">.a</span></tt>) <tt class="docutils literal"><span class="pre">.lib</span></tt> indicates a
static or import library. Where supported by toolsets on unix
variants, a full version extension is added (e.g. &quot;.so.1.34&quot;) and
a symbolic link to the library file, named without the trailing
version number, will also be created.</dd>
</dl>
<!-- .. _Boost.Build toolset names: toolset-name_ -->
<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
<div class="section">
<h2><a class="toc-backref" href="#id41" id="test-your-program" name="test-your-program">6.4&nbsp;&nbsp;&nbsp;Test Your Program</a></h2>
<div class="section" id="test-your-program">
<h2><a class="toc-backref" href="#id42">6.4&nbsp;&nbsp;&nbsp;Test Your Program</a></h2>
<p>To test our subject extraction, we'll filter the following text
file. Copy it out of your browser and save it as <tt class="docutils literal"><span class="pre">jayne.txt</span></tt>:</p>
<pre class="literal-block">
@ -745,8 +749,8 @@ Spoil Rock Hunter?”</p>
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="section">
<h1><a class="toc-backref" href="#id42" id="conclusion-and-further-resources" name="conclusion-and-further-resources">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></h1>
<div class="section" id="conclusion-and-further-resources">
<h1><a class="toc-backref" href="#id43">7&nbsp;&nbsp;&nbsp;Conclusion and Further Resources</a></h1>
<p>This concludes your introduction to Boost and to integrating it
with your programs. As you start using Boost in earnest, there are
surely a few additional points you'll wish we had covered. One day
@ -774,7 +778,7 @@ mailing list</a>.</p>
<table class="docutils footnote" frame="void" id="zip" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id2" name="zip">[1]</a></td><td>If you prefer not to download executable programs,
<tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td>If you prefer not to download executable programs,
download <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=376197"><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt><tt class="docutils literal"><span class="pre">.zip</span></tt></a> and use an external tool to decompress
it. We don't recommend using Windows' built-in decompression as
it can be painfully slow for large archives.</td></tr>
@ -783,7 +787,7 @@ it can be painfully slow for large archives.</td></tr>
<table class="docutils footnote" frame="void" id="installer-src" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a name="installer-src">[2]</a></td><td>If you used the <a class="reference" href="http://www.boost-consulting.com/download/windows">installer</a> from Boost
<tr><td class="label">[2]</td><td>If you used the <a class="reference" href="http://www.boost-consulting.com/download/windows">installer</a> from Boost
Consulting and deselected “Source and Documentation” (it's
selected by default), you won't see the <tt class="docutils literal"><span class="pre">libs/</span></tt> subdirectory.
That won't affect your ability to use precompiled binaries, but
@ -793,7 +797,7 @@ you won't be able to rebuild libraries from scratch.</td></tr>
<table class="docutils footnote" frame="void" id="pch" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id4" name="pch">[3]</a></td><td>There's no problem using Boost with precompiled headers;
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>There's no problem using Boost with precompiled headers;
these instructions merely avoid precompiled headers because it
would require Visual Studio-specific changes to the source code
used in the examples.</td></tr>
@ -802,7 +806,7 @@ used in the examples.</td></tr>
<table class="docutils footnote" frame="void" id="continuation" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id12" name="continuation">[4]</a></td><td>In this example, the caret character <tt class="docutils literal"><span class="pre">^</span></tt> is a
<tr><td class="label"><a class="fn-backref" href="#id13">[4]</a></td><td>In this example, the caret character <tt class="docutils literal"><span class="pre">^</span></tt> is a
way of continuing the command on multiple lines. The command
prompt responds with <tt class="docutils literal"><span class="pre">More?</span></tt> to prompt for more input. Feel
free to omit the carets and subsequent newlines; we used them so
@ -815,7 +819,7 @@ the example would fit on a page of reasonable width.</td></tr>
<table class="docutils footnote" frame="void" id="warnings" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id6" name="warnings">[5]</a></td><td>Remember that warnings are specific to each compiler
<tr><td class="label"><a class="fn-backref" href="#id7">[5]</a></td><td>Remember that warnings are specific to each compiler
implementation. The developer of a given Boost library might
not have access to your compiler. Also, some warnings are
extremely difficult to eliminate in generic code, to the point
@ -826,7 +830,7 @@ have any source code mechanism for suppressing warnings.</td></tr>
<table class="docutils footnote" frame="void" id="distinct" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id17" name="distinct">[6]</a></td><td>This convention distinguishes the static version of
<tr><td class="label"><a class="fn-backref" href="#id18">[6]</a></td><td>This convention distinguishes the static version of
a Boost library from the import library for an
identically-configured Boost DLL, which would otherwise have the
same name.</td></tr>
@ -835,7 +839,7 @@ same name.</td></tr>
<table class="docutils footnote" frame="void" id="debug-abi" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id18" name="debug-abi">[7]</a></td><td>These libraries were compiled without optimization
<tr><td class="label"><a class="fn-backref" href="#id19">[7]</a></td><td>These libraries were compiled without optimization
or inlining, with full debug symbols enabled, and without
<tt class="docutils literal"><span class="pre">NDEBUG</span></tt> <tt class="docutils literal"><span class="pre">#define</span></tt>d. Although it's true that sometimes
these choices don't affect binary compatibility with other
@ -845,7 +849,7 @@ compiled code, you can't count on that with Boost libraries.</td></tr>
<table class="docutils footnote" frame="void" id="native" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id19" name="native">[8]</a></td><td>This feature of STLPort is deprecated because it's
<tr><td class="label"><a class="fn-backref" href="#id20">[8]</a></td><td>This feature of STLPort is deprecated because it's
impossible to make it work transparently to the user; we don't
recommend it.</td></tr>
</tbody>