added info about shared libraries

This commit is contained in:
Arvid Norberg 2005-11-02 23:09:21 +00:00
parent c71a5a9435
commit cf4e3211ec
2 changed files with 19 additions and 8 deletions

View File

@ -329,16 +329,21 @@ bjam darwin-4.0 link=static
<p>To build different versions you can also just add the name of the build <p>To build different versions you can also just add the name of the build
variant. Some default build variants in BBv2 are <tt class="docutils literal"><span class="pre">release</span></tt>, <tt class="docutils literal"><span class="pre">debug</span></tt>, variant. Some default build variants in BBv2 are <tt class="docutils literal"><span class="pre">release</span></tt>, <tt class="docutils literal"><span class="pre">debug</span></tt>,
<tt class="docutils literal"><span class="pre">profile</span></tt>.</p> <tt class="docutils literal"><span class="pre">profile</span></tt>.</p>
<p>If you're building on a platform where dlls share the same heap, you can build <p>You can build libtorrent as a dll too, by typing <tt class="docutils literal"><span class="pre">link=shared</span></tt>, or
libtorrent as a dll too, by typing <tt class="docutils literal"><span class="pre">link=shared</span></tt>, or <tt class="docutils literal"><span class="pre">link=static</span></tt> to <tt class="docutils literal"><span class="pre">link=static</span></tt> to build a static library. <tt class="docutils literal"><span class="pre">link=shared</span></tt> is the default.</p>
explicitly build a static library.</p>
<p>If you want to explicitly say how to link against the runtime library, you <p>If you want to explicitly say how to link against the runtime library, you
can set the <tt class="docutils literal"><span class="pre">runtime-link</span></tt> feature on the commandline, either to <tt class="docutils literal"><span class="pre">shared</span></tt> can set the <tt class="docutils literal"><span class="pre">runtime-link</span></tt> feature on the commandline, either to <tt class="docutils literal"><span class="pre">shared</span></tt>
or <tt class="docutils literal"><span class="pre">static</span></tt>. Most operating systems will only allow linking shared against or <tt class="docutils literal"><span class="pre">static</span></tt>. Most operating systems will only allow linking shared against
the runtime, but on windows you can do both. Example:</p> the runtime, but on windows you can do both. Example:</p>
<pre class="literal-block"> <pre class="literal-block">
bjam msvc-7.1 link=static runtime-link=staitc bjam msvc-7.1 link=static runtime-link=static
</pre> </pre>
<div class="warning">
<p class="first admonition-title">Warning</p>
<p class="last">If you link statically to the runtime library, you cannot build libtorrent
as a shared library (DLL), since you will get separate heaps in the library
and in the client application. It will result in crashes.</p>
</div>
<p>The build targets are put in a directory called bin, and under it they are <p>The build targets are put in a directory called bin, and under it they are
sorted in directories depending on the toolset and build variant used.</p> sorted in directories depending on the toolset and build variant used.</p>
<p>To build the examples, just change directory to the examples directory and <p>To build the examples, just change directory to the examples directory and

View File

@ -208,16 +208,22 @@ To build different versions you can also just add the name of the build
variant. Some default build variants in BBv2 are ``release``, ``debug``, variant. Some default build variants in BBv2 are ``release``, ``debug``,
``profile``. ``profile``.
If you're building on a platform where dlls share the same heap, you can build You can build libtorrent as a dll too, by typing ``link=shared``, or
libtorrent as a dll too, by typing ``link=shared``, or ``link=static`` to ``link=static`` to build a static library. ``link=shared`` is the default.
explicitly build a static library.
If you want to explicitly say how to link against the runtime library, you If you want to explicitly say how to link against the runtime library, you
can set the ``runtime-link`` feature on the commandline, either to ``shared`` can set the ``runtime-link`` feature on the commandline, either to ``shared``
or ``static``. Most operating systems will only allow linking shared against or ``static``. Most operating systems will only allow linking shared against
the runtime, but on windows you can do both. Example:: the runtime, but on windows you can do both. Example::
bjam msvc-7.1 link=static runtime-link=staitc bjam msvc-7.1 link=static runtime-link=static
.. warning::
If you link statically to the runtime library, you cannot build libtorrent
as a shared library (DLL), since you will get separate heaps in the library
and in the client application. It will result in crashes.
The build targets are put in a directory called bin, and under it they are The build targets are put in a directory called bin, and under it they are
sorted in directories depending on the toolset and build variant used. sorted in directories depending on the toolset and build variant used.