|
|
|
|
@@ -14,22 +14,21 @@
|
|
|
|
|
<div class="contents sidebar small topic">
|
|
|
|
|
<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
|
|
|
|
|
<ul class="auto-toc simple">
|
|
|
|
|
<li><a class="reference" href="#introduction" id="id27" name="id27">1 Introduction</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#what-s-here" id="id28" name="id28">1.1 What's Here</a></li>
|
|
|
|
|
<li><a class="reference" href="#preliminaries" id="id29" name="id29">1.2 Preliminaries</a></li>
|
|
|
|
|
<li><a class="reference" href="#introduction" id="id28" name="id28">1 Introduction</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#what-s-here" id="id29" name="id29">1.1 What's Here</a></li>
|
|
|
|
|
<li><a class="reference" href="#preliminaries" id="id30" name="id30">1.2 Preliminaries</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference" href="#get-boost" id="id30" name="id30">2 Get Boost</a></li>
|
|
|
|
|
<li><a class="reference" href="#the-structure-of-a-boost-distribution" id="id31" name="id31">3 The Structure of a Boost Distribution</a></li>
|
|
|
|
|
<li><a class="reference" href="#header-only-libraries" id="id32" name="id32">4 Header-Only Libraries</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-a-simple-program-using-boost" id="id33" name="id33">5 Build a Simple Program Using Boost</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#build-on-nix" id="id34" name="id34">5.1 Build on *nix</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-from-the-visual-studio-command-prompt" id="id35" name="id35">5.2 Build from the Visual Studio Command Prompt</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-in-the-visual-studio-ide" id="id36" name="id36">5.3 Build in the Visual Studio IDE</a></li>
|
|
|
|
|
<li><a class="reference" href="#errors-and-warnings" id="id37" name="id37">5.4 Errors and Warnings</a></li>
|
|
|
|
|
<li><a class="reference" href="#get-boost" id="id31" name="id31">2 Get Boost</a></li>
|
|
|
|
|
<li><a class="reference" href="#the-structure-of-a-boost-distribution" id="id32" name="id32">3 The Structure of a Boost Distribution</a></li>
|
|
|
|
|
<li><a class="reference" href="#header-only-libraries" id="id33" name="id33">4 Header-Only Libraries</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-a-simple-program-using-boost" id="id34" name="id34">5 Build a Simple Program Using Boost</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#build-on-nix" id="id35" name="id35">5.1 Build on *nix</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-on-windows" id="id36" name="id36">5.2 Build on Windows</a></li>
|
|
|
|
|
<li><a class="reference" href="#errors-and-warnings" id="id37" name="id37">5.3 Errors and Warnings</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference" href="#get-boost-library-binaries" id="id38" name="id38">6 Get Boost Library Binaries</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#prepare-to-use-a-boost-library-binary" id="id38" name="id38">6 Prepare to Use a Boost Library Binary</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#install-visual-studio-binaries" id="id39" name="id39">6.1 Install Visual Studio Binaries</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-and-install-nix-binaries" id="id40" name="id40">6.2 Build and Install *nix Binaries</a></li>
|
|
|
|
|
<li><a class="reference" href="#build-and-install-other-binaries" id="id41" name="id41">6.3 Build and Install Other Binaries</a></li>
|
|
|
|
|
@@ -39,23 +38,22 @@
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference" href="#link-your-program-to-a-boost-library" id="id44" name="id44">7 Link Your Program to a Boost Library</a><ul class="auto-toc">
|
|
|
|
|
<li><a class="reference" href="#link-to-a-boost-library-on-windows" id="id45" name="id45">7.1 Link to a Boost Library on Windows</a></li>
|
|
|
|
|
<li><a class="reference" href="#link-to-a-boost-library-on-nix" id="id46" name="id46">7.2 Link to a Boost Library On *nix</a></li>
|
|
|
|
|
<li><a class="reference" href="#link-to-a-boost-library-on-nix" id="id46" name="id46">7.2 Link to a Boost Library on *nix</a></li>
|
|
|
|
|
<li><a class="reference" href="#library-naming" id="id47" name="id47">7.3 Library Naming</a></li>
|
|
|
|
|
<li><a class="reference" href="#test-your-program" id="id48" name="id48">7.4 Test Your Program</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference" href="#conclusion-and-further-resources" id="id49" name="id49">8 Conclusion and Further Resources</a></li>
|
|
|
|
|
<li><a class="reference" href="#appendix-using-command-line-tools-in-windows" id="id50" name="id50">9 Appendix: Using command-line tools in Windows</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- ## Update this substitution for each release -->
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id27" id="introduction" name="introduction">1 Introduction</a></h1>
|
|
|
|
|
<h1><a class="toc-backref" href="#id28" id="introduction" name="introduction">1 Introduction</a></h1>
|
|
|
|
|
<p>Welcome to the Boost libraries! By the time you've completed this
|
|
|
|
|
tutorial, you'll be at least somewhat comfortable with the contents
|
|
|
|
|
of a Boost distribution and how to go about using it.</p>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id28" id="what-s-here" name="what-s-here">1.1 What's Here</a></h2>
|
|
|
|
|
<h2><a class="toc-backref" href="#id29" id="what-s-here" name="what-s-here">1.1 What's Here</a></h2>
|
|
|
|
|
<p>This document is designed to be an <em>extremely</em> gentle introduction,
|
|
|
|
|
so we included a fair amount of material that may already be very
|
|
|
|
|
familiar to you. To keep things simple, we also left out some
|
|
|
|
|
@@ -64,7 +62,7 @@ the end of this document, we'll refer you on to resources that can
|
|
|
|
|
help you pursue these topics further.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id29" id="preliminaries" name="preliminaries">1.2 Preliminaries</a></h2>
|
|
|
|
|
<h2><a class="toc-backref" href="#id30" id="preliminaries" name="preliminaries">1.2 Preliminaries</a></h2>
|
|
|
|
|
<p>We use one typographic convention that might not be immediately
|
|
|
|
|
obvious: <em>italic</em> text in examples is meant as a descriptive
|
|
|
|
|
placeholder for something else, usually information that you'll
|
|
|
|
|
@@ -89,8 +87,8 @@ them for your own compiler or IDE.</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id30" id="get-boost" name="get-boost">2 Get Boost</a></h1>
|
|
|
|
|
<p>There are basically three ways to get Boost on your system:</p>
|
|
|
|
|
<h1><a class="toc-backref" href="#id31" id="get-boost" name="get-boost">2 Get Boost</a></h1>
|
|
|
|
|
<p>To get Boost, choose one of the following methods:</p>
|
|
|
|
|
<ol class="arabic">
|
|
|
|
|
<li><p class="first"><strong>Windows Installer</strong>: Boost Consulting provides an <a class="reference" href="http://www.boost-consulting.com/download.html">installer</a>
|
|
|
|
|
for Windows platforms that installs a complete Boost
|
|
|
|
|
@@ -98,7 +96,7 @@ distribution, plus optional precompiled library binaries for
|
|
|
|
|
Visual Studio, and (optionally) a prebuilt version of the
|
|
|
|
|
<tt class="docutils literal"><span class="pre">bjam</span></tt> build tool.</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><strong>Download</strong>: users of other platforms—and Windows
|
|
|
|
|
<li><p class="first"><strong>Source Download</strong>: users of other platforms—and Windows
|
|
|
|
|
users who prefer to build everything from scratch—can <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=376197">download
|
|
|
|
|
a complete Boost distribution</a> from SourceForge.</p>
|
|
|
|
|
<!-- ## Update this link for each release -->
|
|
|
|
|
@@ -115,16 +113,18 @@ tar --bzip2 -xf <em>/path/to/</em><tt class="docutils literal"><span class="pre"
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><strong>Boost packages</strong> from RedHat, Debian, or some other
|
|
|
|
|
distribution packager: these instructions may not work for you
|
|
|
|
|
if you use 3rd party packages, because other packagers sometimes
|
|
|
|
|
choose to break Boost up into several packages or to reorganize
|
|
|
|
|
the directory structure of the Boost distribution.<a class="footnote-reference" href="#packagers" id="id4" name="id4"><sup>2</sup></a></p>
|
|
|
|
|
<li><p class="first"><strong>Boost packages</strong> are available from RedHat, Debian, and other
|
|
|
|
|
distribution packagers. You may need to adapt these
|
|
|
|
|
instructions if you use this method, because other packagers
|
|
|
|
|
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="id4" name="id4"><sup>2</sup></a> If you have
|
|
|
|
|
trouble, we suggest going back to method 2.</p>
|
|
|
|
|
</li>
|
|
|
|
|
</ol>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id31" id="the-structure-of-a-boost-distribution" name="the-structure-of-a-boost-distribution">3 The Structure of a Boost Distribution</a></h1>
|
|
|
|
|
<h1><a class="toc-backref" href="#id32" id="the-structure-of-a-boost-distribution" name="the-structure-of-a-boost-distribution">3 The Structure of a Boost Distribution</a></h1>
|
|
|
|
|
<p>This is is a sketch of the directory structure you'll get when you
|
|
|
|
|
unpack your Boost installation (windows users replace forward
|
|
|
|
|
slashes with backslashes):</p>
|
|
|
|
|
@@ -159,15 +159,15 @@ the Type Traits Library's <tt class="docutils literal"><span class="pre">is_void
|
|
|
|
|
example, <a class="reference" href="../libs/python/index.html">Boost.Python</a>'s aggregate header is
|
|
|
|
|
<tt class="docutils literal"><span class="pre">boost/python.hpp</span></tt>.</li>
|
|
|
|
|
<li>Most libraries place private headers in a subdirectory called
|
|
|
|
|
<tt class="docutils literal"><span class="pre">detail/</span></tt> or <tt class="docutils literal"><span class="pre">aux_/</span></tt>. Don't look in these directories and
|
|
|
|
|
expect to find anything you can use.</li>
|
|
|
|
|
<tt class="docutils literal"><span class="pre">detail/</span></tt> or <tt class="docutils literal"><span class="pre">aux_/</span></tt>. Don't
|
|
|
|
|
expect to find anything you can use in these directories.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<p>A few things are worth noting right off the bat:</p>
|
|
|
|
|
<ol class="arabic">
|
|
|
|
|
<li><p class="first">The path to the “boost root directory” is sometimes referred to
|
|
|
|
|
as <tt class="docutils literal"><span class="pre">$BOOST_ROOT</span></tt> in documentation and mailing lists. If you
|
|
|
|
|
used the Windows installer, that will usually be <tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>.</p>
|
|
|
|
|
used the Windows installer, that will usually be <tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>.</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">To compile anything in Boost, you need a directory containing
|
|
|
|
|
the <tt class="docutils literal"><span class="pre">boost/</span></tt> subdirectory in your <tt class="docutils literal"><span class="pre">#include</span></tt> path. For most
|
|
|
|
|
@@ -203,40 +203,41 @@ contains a subset of the Boost documentation. Start with
|
|
|
|
|
</ol>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id32" id="header-only-libraries" name="header-only-libraries">4 Header-Only Libraries</a></h1>
|
|
|
|
|
<h1><a class="toc-backref" href="#id33" id="header-only-libraries" name="header-only-libraries">4 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">
|
|
|
|
|
<p class="first admonition-title">Nothing to Build</p>
|
|
|
|
|
<p class="first admonition-title">Nothing to Build?</p>
|
|
|
|
|
<p class="last">Most Boost libraries are <strong>header-only</strong>: they consist <em>entirely
|
|
|
|
|
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 can't be used without separate
|
|
|
|
|
compilation are:</p>
|
|
|
|
|
<p id="separate">The only Boost libraries that <em>must</em> be built separately are:</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>Boost.Filesystem</li>
|
|
|
|
|
<li>Boost.IOStreams</li>
|
|
|
|
|
<li>Boost.ProgramOptions</li>
|
|
|
|
|
<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/index.html">Boost.Python</a></li>
|
|
|
|
|
<li>Boost.Regex</li>
|
|
|
|
|
<li>Boost.Serialization</li>
|
|
|
|
|
<li>Boost.Signals</li>
|
|
|
|
|
<li>Boost.Test</li>
|
|
|
|
|
<li>Boost.Thread</li>
|
|
|
|
|
<li>Boost.Wave</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>
|
|
|
|
|
<li><a class="reference" href="../libs/thread/index.html">Boost.Thread</a></li>
|
|
|
|
|
<li><a class="reference" href="../libs/wave/index.html">Boost.Wave</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
<p>A few libraries have optional separately-compiled binaries:</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li><a class="reference" href="../libs/date_time/index.html">Boost.DateTime</a> has a binary component that is only needed if
|
|
|
|
|
you're using its <tt class="docutils literal"><span class="pre">to_string</span></tt>/<tt class="docutils literal"><span class="pre">from_string</span></tt> or serialization
|
|
|
|
|
features, or if you're targeting Visual C++ 6.x or Borland.</li>
|
|
|
|
|
<li><a class="reference" href="../libs/graph/index.html">Boost.Graph</a> also has a binary component that is only needed if
|
|
|
|
|
you intend to <a class="reference" href="../libs/graph/doc/read_graphviz.html">parse GraphViz files</a>.</li>
|
|
|
|
|
<li><a class="reference" href="../libs/test/index.html">Boost.Test</a> ... <strong>Waiting for Gennadiy to tell me what to say here.</strong></li>
|
|
|
|
|
</ul>
|
|
|
|
|
<p>The DateTime library has a separately-compiled component that
|
|
|
|
|
is only needed if you're using its to/from_string and/or
|
|
|
|
|
serialization features or if you're targeting Visual C++ 6.x or
|
|
|
|
|
Borland. The Graph library also has a separately-compiled part,
|
|
|
|
|
but you won't need it unless you intend to <a class="reference" href="../libs/graph/doc/read_graphviz.html">parse GraphViz
|
|
|
|
|
files</a>.</p>
|
|
|
|
|
<!-- ## Keep the list of non-header-only libraries up-to-date -->
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id33" id="build-a-simple-program-using-boost" name="build-a-simple-program-using-boost">5 Build a Simple Program Using Boost</a></h1>
|
|
|
|
|
<h1><a class="toc-backref" href="#id34" id="build-a-simple-program-using-boost" name="build-a-simple-program-using-boost">5 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
|
|
|
|
|
@@ -258,7 +259,7 @@ 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="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id34" id="build-on-nix" name="build-on-nix"><span id="unix-header-only"></span>5.1 Build on *nix</a></h2>
|
|
|
|
|
<h2><a class="toc-backref" href="#id35" id="build-on-nix" name="build-on-nix"><span id="unix-header-only"></span>5.1 Build on *nix</a></h2>
|
|
|
|
|
<p>In the directory where you saved <tt class="docutils literal"><span class="pre">example.cpp</span></tt>, issue the
|
|
|
|
|
following command:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
@@ -271,7 +272,74 @@ echo 1 2 3 | ./example
|
|
|
|
|
<p><a class="reference" href="#errors-and-warnings"><em>next...</em></a></p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id35" id="build-from-the-visual-studio-command-prompt" name="build-from-the-visual-studio-command-prompt">5.2 Build from the Visual Studio Command Prompt</a></h2>
|
|
|
|
|
<h2><a class="toc-backref" href="#id36" id="build-on-windows" name="build-on-windows">5.2 Build on Windows</a></h2>
|
|
|
|
|
<div class="small sidebar">
|
|
|
|
|
<p class="first sidebar-title"><a id="command-line-tool" name="command-line-tool"><span id="command-prompt"></span>The Windows Command Prompt</a></p>
|
|
|
|
|
<p>In Windows, a command-line tool is invoked by typing its name,
|
|
|
|
|
optionally followed by arguments, into a <em>Command Prompt</em> window
|
|
|
|
|
and pressing the Return (or Enter) key.</p>
|
|
|
|
|
<p>To open <em>Command Prompt</em>, click the <em>Start</em> menu button, click
|
|
|
|
|
<em>Run</em>, type “cmd”, and then click <em>OK</em>.</p>
|
|
|
|
|
<p>All commands are executed within the context of a <strong>current
|
|
|
|
|
directory</strong> in the filesystem. To set the current directory,
|
|
|
|
|
type:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
cd <em>path</em>\<em>to</em>\<em>some</em>\<em>directory</em>
|
|
|
|
|
</pre>
|
|
|
|
|
<p>followed by Return. For example,</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
cd <tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>
|
|
|
|
|
</pre>
|
|
|
|
|
<p class="last">Long commands can be continued across several lines by typing a
|
|
|
|
|
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>
|
|
|
|
|
<p>To build the examples in this guide, you can use an Integrated
|
|
|
|
|
Development Environment (IDE) like Visual Studio or you can follow
|
|
|
|
|
a shorter path by issuing commands from the command prompt.</p>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h3><a id="from-the-visual-studio-ide" name="from-the-visual-studio-ide"><span id="vs-header-only"></span>From the Visual Studio IDE</a></h3>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><p class="first">From Visual Studio's <em>File</em> menu, select <em>New</em> > <em>Project…</em></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">In the left-hand pane of the resulting <em>New Project</em> dialog,
|
|
|
|
|
select <em>Visual C++</em> > <em>Win32</em>.</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">In the right-hand pane, select <em>Win32 Console Application</em>
|
|
|
|
|
(VS8.0) or <em>Win32 Console Project</em> (VS7.1).</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">In the <em>name</em> field, enter “example”</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">Right-click <strong>example</strong> in the <em>Solution Explorer</em> pane and
|
|
|
|
|
select <em>Properties</em> from the resulting pop-up menu</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">In <em>Configuration Properties</em> > <em>C/C++</em> > <em>General</em> > <em>Additional Include
|
|
|
|
|
Directories</em>, enter the path to the Boost root directory, for example</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<p><tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt></p>
|
|
|
|
|
</blockquote>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">In <em>Configuration Properties</em> > <em>C/C++</em> > <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="id8" name="id8"><sup>6</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>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">From the <em>Build</em> menu, select <em>Build Solution</em>.</p>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<p>To test your application, hit the F5 key and type the following
|
|
|
|
|
into the resulting window, followed by the return key:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
1 2 3
|
|
|
|
|
</pre>
|
|
|
|
|
<p>Then hold down the control key and press "Z", followed by the
|
|
|
|
|
return key.</p>
|
|
|
|
|
<p><a class="reference" href="#errors-and-warnings"><em>next...</em></a></p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h3><a id="from-the-command-prompt" name="from-the-command-prompt">From the Command Prompt</a></h3>
|
|
|
|
|
<p>From your computer's <em>Start</em> menu, if you are a Visual
|
|
|
|
|
Studio 2005 user, select</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
@@ -285,45 +353,16 @@ Studio 2005 user, select</p>
|
|
|
|
|
Studio compiler. In that window, type the following command and
|
|
|
|
|
hit the return key:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
cl /EHsc /I<em>path</em><tt class="docutils literal"><span class="pre">\</span></tt><em>to</em><tt class="docutils literal"><span class="pre">\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt> <em>path</em>\<em>to</em>\example.cpp
|
|
|
|
|
cl /EHsc /I <em>path</em><tt class="docutils literal"><span class="pre">\</span></tt><em>to</em><tt class="docutils literal"><span class="pre">\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt> <em>path</em>\<em>to</em>\example.cpp
|
|
|
|
|
</pre>
|
|
|
|
|
<p>To test the result, type:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
echo 1 2 3 | example
|
|
|
|
|
</pre>
|
|
|
|
|
<p><a class="reference" href="#errors-and-warnings"><em>next...</em></a></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id36" id="build-in-the-visual-studio-ide" name="build-in-the-visual-studio-ide"><span id="vs-header-only"></span>5.3 Build in the Visual Studio IDE</a></h2>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>From Visual Studio's <em>File</em> menu, select <em>New</em> > <em>Project…</em></li>
|
|
|
|
|
<li>In the left-hand pane of the resulting <em>New Project</em> dialog,
|
|
|
|
|
select <em>Visual C++</em> > <em>Win32</em>.</li>
|
|
|
|
|
<li>In the right-hand pane, select <em>Win32 Console Application</em>
|
|
|
|
|
(VS8.0) or <em>Win32 Console Project</em> (VS7.1).</li>
|
|
|
|
|
<li>In the <em>name</em> field, enter “example”</li>
|
|
|
|
|
<li>Right-click <strong>example</strong> in the <em>Solution Explorer</em> pane and
|
|
|
|
|
select <em>Properties</em> from the resulting pop-up menu</li>
|
|
|
|
|
<li>In <em>Configuration Properties</em> > <em>C/C++</em> > <em>General</em> > <em>Additional Include
|
|
|
|
|
Directories</em>, enter the path to the Boost root directory, e.g.
|
|
|
|
|
<tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>.</li>
|
|
|
|
|
<li>In <em>Configuration Properties</em> > <em>C/C++</em> > <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="id9" name="id9"><sup>5</sup></a></li>
|
|
|
|
|
<li>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.</li>
|
|
|
|
|
<li>From the <em>Build</em> menu, select <em>Build Solution</em>.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<p>To test your application, hit the F5 key and type the following
|
|
|
|
|
into the resulting window, followed by the return key:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
1 2 3
|
|
|
|
|
</pre>
|
|
|
|
|
<p>Then hold down the control key and press "Z", followed by the
|
|
|
|
|
return key.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id37" id="errors-and-warnings" name="errors-and-warnings">5.4 Errors and Warnings</a></h2>
|
|
|
|
|
<h2><a class="toc-backref" href="#id37" id="errors-and-warnings" name="errors-and-warnings">5.3 Errors and Warnings</a></h2>
|
|
|
|
|
<p>Don't be alarmed if you see compiler warnings from Boost headers.
|
|
|
|
|
We try to eliminate them, but doing so isn't always practical.<a class="footnote-reference" href="#warnings" id="id10" name="id10"><sup>4</sup></a></p>
|
|
|
|
|
<p>Errors are another matter. If you're seeing compilation errors at
|
|
|
|
|
@@ -333,14 +372,14 @@ Boost root directory.</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id38" id="get-boost-library-binaries" name="get-boost-library-binaries">6 Get Boost Library Binaries</a></h1>
|
|
|
|
|
<h1><a class="toc-backref" href="#id38" id="prepare-to-use-a-boost-library-binary" name="prepare-to-use-a-boost-library-binary">6 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 library binaries.</p>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id39" id="install-visual-studio-binaries" name="install-visual-studio-binaries">6.1 Install Visual Studio Binaries</a></h2>
|
|
|
|
|
<p>The <a class="reference" href="http://www.boost-consulting.com/download.html">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:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\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>.</p>
|
|
|
|
|
the boost root, typically <tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><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>.</p>
|
|
|
|
|
<p><a class="reference" href="#link-your-program-to-a-boost-library"><em>next...</em></a></p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
@@ -357,12 +396,14 @@ directory, you'll probably want to at least use</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
<strong>$</strong> ./configure <strong>--prefix=</strong><em>path</em>/<em>to</em>/<em>installation</em>/<em>prefix</em>
|
|
|
|
|
</pre>
|
|
|
|
|
<p>to install somewhere else. Finally,</p>
|
|
|
|
|
<p>to install somewhere else. Also, consider using the
|
|
|
|
|
<tt class="docutils literal"><span class="pre">--show-libraries</span></tt> and <tt class="docutils literal"><span class="pre">--with-libraries=</span></tt> options to limit the
|
|
|
|
|
long wait you'll experience if you build everything. Finally,</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
<strong>$</strong> make install
|
|
|
|
|
</pre>
|
|
|
|
|
<p>which will leave Boost binaries in the <tt class="docutils literal"><span class="pre">lib/</span></tt> subdirectory of
|
|
|
|
|
your installation prefix. You will also find a copy of the Boost
|
|
|
|
|
<p>will leave Boost binaries in the <tt class="docutils literal"><span class="pre">lib/</span></tt> subdirectory of your
|
|
|
|
|
installation prefix. You will also find a copy of the Boost
|
|
|
|
|
headers in the <tt class="docutils literal"><span class="pre">include/</span></tt> subdirectory of the installation
|
|
|
|
|
prefix, so you can henceforth use that directory as an <tt class="docutils literal"><span class="pre">#include</span></tt>
|
|
|
|
|
path in place of the Boost root directory.</p>
|
|
|
|
|
@@ -371,7 +412,7 @@ path in place of the Boost root directory.</p>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id41" id="build-and-install-other-binaries" name="build-and-install-other-binaries">6.3 Build and Install Other Binaries</a></h2>
|
|
|
|
|
<p>If you're not using Visual C++ 7.1 or 8.0, or you're a *nix user
|
|
|
|
|
who wants want to build with a toolset other than your system's
|
|
|
|
|
who wants to build with a toolset other than your system's
|
|
|
|
|
default, or if you want a nonstandard variant build of Boost
|
|
|
|
|
(e.g. optimized, but with debug symbols), you'll need to use
|
|
|
|
|
<a class="reference" href="../tools/build/index.html">Boost.Build</a> to create your own binaries.</p>
|
|
|
|
|
@@ -502,20 +543,19 @@ purpose in your current working directory.</p>
|
|
|
|
|
<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="#id15"><em>build-directory</em></a> <strong>\</strong>
|
|
|
|
|
<strong>--toolset=</strong><a class="reference" href="#toolset-name"><em>toolset-name</em></a> stage
|
|
|
|
|
bjam <strong>--build-dir=</strong><a class="reference" href="#id15"><em>build-directory</em></a> <strong>--toolset=</strong><a class="reference" href="#toolset-name"><em>toolset-name</em></a> stage
|
|
|
|
|
</pre>
|
|
|
|
|
<p>For example, on Windows, your session might look like:</p>
|
|
|
|
|
<p>For example, on Windows, your session might look like this:<a class="footnote-reference" href="#continuation" id="id16" name="id16"><sup>5</sup></a></p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
C:WINDOWS> cd <tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>
|
|
|
|
|
<tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>> bjam <strong>\</strong>
|
|
|
|
|
<strong>--build-dir=</strong>%TEMP%\build-boost <strong>\</strong>
|
|
|
|
|
<strong>--toolset=msvc stage</strong>
|
|
|
|
|
C:WINDOWS> cd <tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><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:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><span class="pre">Files\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>> bjam <strong>^</strong>
|
|
|
|
|
More? <strong>--build-dir=</strong>%TEMP%\build-boost <strong>^</strong>
|
|
|
|
|
More? <strong>--toolset=</strong>msvc stage
|
|
|
|
|
</pre>
|
|
|
|
|
<p>And on Unix:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
$ cd ~/<tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>
|
|
|
|
|
$ bjam <strong>--build-dir=</strong>~/build-boost <strong>--prefix=</strong>~/boost
|
|
|
|
|
$ bjam <strong>--build-dir=</strong>/tmp/build-boost <strong>--toolset=</strong>gcc
|
|
|
|
|
</pre>
|
|
|
|
|
<p>In either case, Boost.Build will place the Boost binaries in the
|
|
|
|
|
<tt class="docutils literal"><span class="pre">stage/</span></tt> subdirectory of your <a class="reference" href="#build-directory">build directory</a>.</p>
|
|
|
|
|
@@ -529,6 +569,14 @@ parts shown in <strong>bold</strong> type above be entirely lower-case.</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
bjam --help
|
|
|
|
|
</pre>
|
|
|
|
|
<p>In particular, to limit the amount of time spent building, you may
|
|
|
|
|
be interested in:</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>reviewing the list of library names with <tt class="docutils literal"><span class="pre">--show-libraries</span></tt></li>
|
|
|
|
|
<li>limiting which libraries get built with the <tt class="docutils literal"><span class="pre">--with-</span></tt><em>library-name</em> or <tt class="docutils literal"><span class="pre">--without-</span></tt><em>library-name</em> options</li>
|
|
|
|
|
<li>choosing a specific build variant by adding <tt class="docutils literal"><span class="pre">release</span></tt> or
|
|
|
|
|
<tt class="docutils literal"><span class="pre">debug</span></tt> to the command line.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
@@ -574,7 +622,7 @@ questions about configuring Boost for your compiler to the
|
|
|
|
|
<h1><a class="toc-backref" href="#id44" id="link-your-program-to-a-boost-library" name="link-your-program-to-a-boost-library">7 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">Boost.Regex</a> library, which has a
|
|
|
|
|
emails. It uses the <a class="reference" href="../libs/regex/index.html">Boost.Regex</a> library, which has a
|
|
|
|
|
separately-compiled binary component.</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
#include <boost/regex.hpp>
|
|
|
|
|
@@ -603,12 +651,6 @@ build settings.</li>
|
|
|
|
|
whose compile configuration is compatible with the rest of your
|
|
|
|
|
project.</li>
|
|
|
|
|
</ol>
|
|
|
|
|
<div class="note">
|
|
|
|
|
<p class="first admonition-title">Note</p>
|
|
|
|
|
<p class="last"><a class="reference" href="../libs/python/index.html">Boost.Python</a> users should read that library's own <a class="reference" href="../libs/python/doc/building.html">build
|
|
|
|
|
documentation</a> as there are several library-specific issues to
|
|
|
|
|
consider.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id45" id="link-to-a-boost-library-on-windows" name="link-to-a-boost-library-on-windows">7.1 Link to a Boost Library on Windows</a></h2>
|
|
|
|
|
<p id="auto-linking">Most Windows compilers and linkers have so-called “auto-linking
|
|
|
|
|
@@ -622,7 +664,7 @@ the directories you've told it to search.</p>
|
|
|
|
|
<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
|
|
|
|
|
in <tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\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>:</p>
|
|
|
|
|
in <tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><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>:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
cl /EHsc /I <em>path</em><tt class="docutils literal"><span class="pre">\</span></tt><em>to</em><tt class="docutils literal"><span class="pre">\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt> example.cpp <strong>\</strong>
|
|
|
|
|
<strong>/link /LIBPATH:</strong> <strong>C:\Program Files\boost\</strong><strong>boost_1_34_0</strong><strong>\lib</strong>
|
|
|
|
|
@@ -638,14 +680,14 @@ earlier:</p>
|
|
|
|
|
select <em>Properties</em> from the resulting pop-up menu</li>
|
|
|
|
|
<li>In <em>Configuration Properties</em> > <em>Linker</em> > <em>Additional Library
|
|
|
|
|
Directories</em>, enter the path to the Boost binaries,
|
|
|
|
|
e.g. <tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\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>.</li>
|
|
|
|
|
e.g. <tt class="docutils literal"><span class="pre">C:\</span></tt><tt class="docutils literal"><span class="pre">Program</span></tt> <tt class="docutils literal"><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>.</li>
|
|
|
|
|
<li>From the <em>Build</em> menu, select <em>Build Solution</em>.</li>
|
|
|
|
|
</ol>
|
|
|
|
|
<p><a class="reference" href="#test-your-program"><em>next...</em></a></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h2><a class="toc-backref" href="#id46" id="link-to-a-boost-library-on-nix" name="link-to-a-boost-library-on-nix">7.2 Link to a Boost Library On *nix</a></h2>
|
|
|
|
|
<h2><a class="toc-backref" href="#id46" id="link-to-a-boost-library-on-nix" name="link-to-a-boost-library-on-nix">7.2 Link to a Boost Library on *nix</a></h2>
|
|
|
|
|
<p>There are two main ways to link to libraries:</p>
|
|
|
|
|
<ol class="upperalpha">
|
|
|
|
|
<li><p class="first">You can specify the full path to each library:</p>
|
|
|
|
|
@@ -654,7 +696,7 @@ $ c++ -I <tt class="docutils literal"><span class="pre">/</span></tt><em>path</e
|
|
|
|
|
<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="id21" name="id21"><sup>6</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="id21" name="id21"><sup>7</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 <tt class="docutils literal"><span class="pre">/</span></tt><em>path</em><tt class="docutils literal"><span class="pre">/</span></tt><em>to</em><tt class="docutils literal"><span class="pre">/</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt> example.cpp -o example <strong>\</strong>
|
|
|
|
|
@@ -685,7 +727,7 @@ 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="id23" name="id23"><sup>7</sup></a></dd>
|
|
|
|
|
not.<a class="footnote-reference" href="#distinct" id="id23" name="id23"><sup>8</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>
|
|
|
|
|
@@ -722,14 +764,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="id24" name="id24"><sup>8</sup></a></td>
|
|
|
|
|
<td>building a debug version of your code.<a class="footnote-reference" href="#debug-abi" id="id24" name="id24"><sup>9</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="id25" name="id25"><sup>9</sup></a></td>
|
|
|
|
|
<td>using STLPort's deprecated “native iostreams” feature.<a class="footnote-reference" href="#native" id="id25" name="id25"><sup>10</sup></a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
@@ -744,16 +786,16 @@ ABI tag is ommitted.</p>
|
|
|
|
|
replaced by underscores. For example, version 1.31.1 would be
|
|
|
|
|
tagged as "-1_31_1".</dd>
|
|
|
|
|
<dt><tt class="docutils literal"><span class="pre">.lib</span></tt></dt>
|
|
|
|
|
<dd><em>Extension</em>: determined according to the
|
|
|
|
|
operating system's usual convention. On most *nix 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—except for libraries built
|
|
|
|
|
by <tt class="docutils literal"><span class="pre">gcc</span></tt> toolset, which always uses the *nix
|
|
|
|
|
convention—``.dll`` indicates a shared library and <tt class="docutils literal"><span class="pre">.lib</span></tt>
|
|
|
|
|
indicates a static or import library. Where supported by *nix
|
|
|
|
|
toolsets, a full version extension is added (e.g. ".so.1.34"); a
|
|
|
|
|
symbolic link to the library file, named without the trailing
|
|
|
|
|
version number, will also be created.</dd>
|
|
|
|
|
<dd><em>Extension</em>: determined according to the operating system's usual
|
|
|
|
|
convention. On most *nix 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 <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> <span class="pre">``.lib</span></tt> indicates a static or import
|
|
|
|
|
library. Where supported by *nix toolsets, 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.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
@@ -815,12 +857,30 @@ them. Until then, we suggest you pursue the following resources.
|
|
|
|
|
If you can't find what you need, or there's anything we can do to
|
|
|
|
|
make this document clearer, please post it to the <a class="reference" href="mailing_lists.htm#users">Boost Users'
|
|
|
|
|
mailing list</a>.</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li><a class="reference" href="../tools/build/v2">Boost.Build reference manual</a></li>
|
|
|
|
|
<li><a class="reference" href="../tools/jam/index.html">Boost.Jam reference manual</a></li>
|
|
|
|
|
<li><a class="reference" href="mailing_lists.htm#users">Boost Users' mailing list</a></li>
|
|
|
|
|
<li><a class="reference" href="mailing_lists.htm#jamboost">Boost.Build mailing list</a></li>
|
|
|
|
|
<li><a class="reference" href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build_V2">Boost.Build Wiki</a></li>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><p class="first"><a class="reference" href="../tools/build/v2">Boost.Build reference manual</a></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><a class="reference" href="../tools/jam/index.html">Boost.Jam reference manual</a></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><a class="reference" href="mailing_lists.htm#users">Boost Users' mailing list</a></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><a class="reference" href="mailing_lists.htm#jamboost">Boost.Build mailing list</a></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><a class="reference" href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build_V2">Boost.Build Wiki</a></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">Index of <a class="reference" href="../libs/index.html">All Library Documentation</a></p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">Library-specific Configuration and Build Details</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><p class="first"><a class="reference" href="../libs/python/doc/building.html">Boost.Python</a></p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
</blockquote>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><strong>Library authors need to send me the links for their
|
|
|
|
|
libraries</strong></p>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<div class="admonition-onward admonition">
|
|
|
|
|
<p class="first admonition-title">Onward</p>
|
|
|
|
|
@@ -829,33 +889,6 @@ mailing list</a>.</p>
|
|
|
|
|
<p class="attribution">—the Boost Developers</p>
|
|
|
|
|
</blockquote>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<h1><a class="toc-backref" href="#id50" id="appendix-using-command-line-tools-in-windows" name="appendix-using-command-line-tools-in-windows"><span id="command-line-tool"></span><span id="command-prompt"></span><span id="using-command-line-tools-in-windows"></span>9 Appendix: Using command-line tools in Windows</a></h1>
|
|
|
|
|
<p>In Windows, a command-line tool is invoked by typing its name,
|
|
|
|
|
optionally followed by arguments, into a <em>Command Prompt</em> window
|
|
|
|
|
and pressing the Return (or Enter) key.</p>
|
|
|
|
|
<p>To open <em>Command Prompt</em>, click the <em>Start</em> menu button, click
|
|
|
|
|
<em>Run</em>, type “cmd”, and then click OK.</p>
|
|
|
|
|
<p>All commands are executed within the context of a <strong>current
|
|
|
|
|
directory</strong> in the filesystem. To set the current directory,
|
|
|
|
|
type:</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
cd <em>path</em>\<em>to</em>\<em>some</em>\<em>directory</em>
|
|
|
|
|
</pre>
|
|
|
|
|
<p>followed by Return. For example,</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
cd <tt class="docutils literal"><span class="pre">C:</span></tt> <tt class="docutils literal"><span class="pre">\Program</span></tt>`` <tt class="docutils literal"><span class="pre">\</span> <span class="pre">``Files</span></tt><tt class="docutils literal"><span class="pre">\boost\</span></tt><tt class="docutils literal"><span class="pre">boost_1_34_0</span></tt>
|
|
|
|
|
</pre>
|
|
|
|
|
<p>One way to name a directory you know about is to write</p>
|
|
|
|
|
<pre class="literal-block">
|
|
|
|
|
%HOMEDRIVE%%HOMEPATH%\<em>directory-name</em>
|
|
|
|
|
</pre>
|
|
|
|
|
<p>which indicates a sibling folder of your “My Documents” folder.</p>
|
|
|
|
|
<p>Long commands can be continued across several lines by typing
|
|
|
|
|
backslashes at the ends of all but the last line. Many of the
|
|
|
|
|
examples on this page use that technique to save horizontal
|
|
|
|
|
space.</p>
|
|
|
|
|
<hr class="docutils" />
|
|
|
|
|
<table class="docutils footnote" frame="void" id="zip" rules="none">
|
|
|
|
|
<colgroup><col class="label" /><col /></colgroup>
|
|
|
|
|
@@ -896,10 +929,20 @@ where it's not worth the trouble. Finally, some compilers don't
|
|
|
|
|
have any source code mechanism for suppressing warnings.</td></tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<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="#id16" name="continuation">[5]</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
|
|
|
|
|
the example would fit on a page of reasonable width.</td></tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<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="#id9" name="pch">[5]</a></td><td>There's no problem using Boost with precompiled headers;
|
|
|
|
|
<tr><td class="label"><a class="fn-backref" href="#id8" name="pch">[6]</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>
|
|
|
|
|
@@ -908,14 +951,14 @@ used in the examples.</td></tr>
|
|
|
|
|
<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="#id21" name="lowercase-l">[6]</a></td><td>That option is a dash followed by a lowercase “L”
|
|
|
|
|
<tr><td class="label"><a class="fn-backref" href="#id21" name="lowercase-l">[7]</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>
|
|
|
|
|
<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="#id23" name="distinct">[7]</a></td><td>This convention distinguishes the static version of
|
|
|
|
|
<tr><td class="label"><a class="fn-backref" href="#id23" name="distinct">[8]</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>
|
|
|
|
|
@@ -924,7 +967,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="#id24" name="debug-abi">[8]</a></td><td>These libraries were compiled without optimization
|
|
|
|
|
<tr><td class="label"><a class="fn-backref" href="#id24" name="debug-abi">[9]</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. All though it's true that sometimes
|
|
|
|
|
these choices don't affect binary compatibility with other
|
|
|
|
|
@@ -934,7 +977,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="#id25" name="native">[9]</a></td><td>This feature of STLPort is deprecated because it's
|
|
|
|
|
<tr><td class="label"><a class="fn-backref" href="#id25" name="native">[10]</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>
|
|
|
|
|
@@ -944,7 +987,7 @@ recommend it.</td></tr>
|
|
|
|
|
<div class="footer">
|
|
|
|
|
<hr class="footer" />
|
|
|
|
|
<a class="reference" href="./getting_started.rst">View document source</a>.
|
|
|
|
|
Generated on: 2006-12-12 00:28 UTC.
|
|
|
|
|
Generated on: 2006-12-13 23:45 UTC.
|
|
|
|
|
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|