mirror of
https://github.com/avmaisak/LFS_Book.git
synced 2026-01-14 02:00:45 +00:00
Revision: 11424 Author: bdubbs Date: 20 июня 2018 г. 18:20:49 Message: Update description/rationale for Libstdc++ in Chapter 5 ---- Modified : /trunk/BOOK/chapter05/gcc-pass1.xml Modified : /trunk/BOOK/chapter05/libstdc++.xml
117 lines
5.2 KiB
XML
117 lines
5.2 KiB
XML
<?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</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>
|