Files
LFS_Book/chapter05/libstdc++.xml
Anton Maisak 93a00a50e0 SYNC
Revision: 11574
Author: pierre
Date: 10 апреля 2019 г. 23:20:22
Message:
Change <productname> tags so that they reflect the dbhtml processing
instruction
----
Modified : /trunk/BOOK/chapter05/binutils-pass1.xml
Modified : /trunk/BOOK/chapter05/binutils-pass2.xml
Modified : /trunk/BOOK/chapter05/gcc-pass1.xml
Modified : /trunk/BOOK/chapter05/gcc-pass2.xml
Modified : /trunk/BOOK/chapter05/libstdc++.xml
Modified : /trunk/BOOK/chapter05/linux-headers.xml
Modified : /trunk/BOOK/chapter06/linux-headers.xml
Modified : /trunk/BOOK/chapter06/pkgconfig.xml
Modified : /trunk/BOOK/chapter07/bootscripts.xml
Modified : /trunk/BOOK/chapter08/kernel.xml
2019-08-10 11:02:46 +03:00

117 lines
5.2 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-tools-libstdcpp" role="wrap">
<?dbhtml filename="gcc-libstdc++.html"?>
<sect1info condition="script">
<productname>gcc-libstdc++</productname>
<productnumber>&gcc-version;</productnumber>
<address>&gcc-url;</address>
</sect1info>
<title>Libstdc++ из пакета GCC-&gcc-version;</title>
<indexterm zone="ch-tools-libstdcpp">
<primary sortas="a-GCC">GCC</primary>
<secondary>tools, libstdc++</secondary>
</indexterm>
<sect2 role="package">
<title/>
<para>Libstdc++ является стандартной библиотекой языка Cи++. Она необходима для правильной работы компилятора g++ (часть GCC написана на языке Си++).
Сборку пришлось отложить на этапе <xref linkend="ch-tools-gcc-pass1"/> потому что присутствует зависимость с glibc, которая еще недоступна в каталоге /tools.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&libstdcpp-ch5-sbu;</seg>
<seg>&libstdcpp-ch5-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Установка целевой библиотеки Libstdc++</title>
<note>
<para><application>Libstdc++</application> является частью исходных кодов пакета GCC. Сначала необходимо распаковать архив с исходным кодом пакета GCC и перейти в каталог <filename>gcc-&gcc-version;</filename>.</para>
</note>
<para>Создайте отдельный каталог для сборки Libstdc++:</para>
<screen><userinput remap="pre">mkdir -v build
cd build</userinput></screen>
<para>Подготовьте пакет Libstdc++ к компиляции:</para>
<screen><userinput remap="configure">../libstdc++-v3/configure \
--host=$LFS_TGT \
--prefix=/tools \
--disable-multilib \
--disable-nls \
--disable-libstdcxx-threads \
--disable-libstdcxx-pch \
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
<variablelist>
<title>Значение параметров конфигурации:</title>
<varlistentry>
<term><parameter>--host=...</parameter></term>
<listitem>
<para>Указывает на использование кросс-компилятора который был установлен вместо компилятора в каталоге <filename>/usr/bin</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--disable-libstdcxx-threads</parameter></term>
<listitem>
<para>Поскольку сборка библиотеки Си для работы с потоками еще не создана, соответствующую библиотеку Си++ скомпилировать тоже не получится.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--disable-libstdcxx-pch</parameter></term>
<listitem>
<para>Этот аргумент указывает на то, что не требуется установка предварительно скомпилированых заголовочных файлов, которые на данном этапе не требуются.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</parameter></term>
<listitem>
<para>Это каталог, где будет выполнятся поиск стандартных заголовочных файлов компилятором Си++. При обычной сборке, эта информация автоматически передается сценарию <command>configure</command> пакета Libstdc++ из каталога верхнего уровня. В нашем случае, эта информация должны быть указана явно.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Чтобы скомпилировать пакет Libstdc++, необходимо выполнить команду:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Установите бибоиотеку:</para>
<screen><userinput remap="install">make install</userinput></screen>
</sect2>
<sect2 role="content">
<title/>
<para>Подробная информация об этом пакете находится в
<xref linkend="contents-gcc" role="."/></para>
</sect2>
</sect1>