%general-entities; ]> gcc-libstdc++ &gcc-version;
&gcc-url;
Libstdc++ из GCC-&gcc-version; GCC tools, libstdc++ Проход 1 <para>Libstdc++ — это стандартная библиотека C++. Она нужна для компиляции кода C++ (часть GCC написана на C++), когда мы собирали <xref linkend="ch-tools-gcc-pass1"/>, нам пришлось отложить её установку, потому что она зависит от библиотеки Glibc, которой еще не было в целевом каталоге. </para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&libstdcpp-tmpp1-sbu;</seg> <seg>&libstdcpp-tmpp1-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Установка библиотеки Libstdc++ Libstdc++ является частью исходников GCC. Сначала вы должны распаковать архив GCC и перейти в каталог gcc-&gcc-version;. Создайте отдельный каталог сборки для libstdc++ и перейдите в него: mkdir -v build cd build Подготовьте libstdc++ к компиляции: ../libstdc++-v3/configure \ --host=$LFS_TGT \ --build=$(../config.guess) \ --prefix=/usr \ --disable-multilib \ --disable-nls \ --disable-libstdcxx-pch \ --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version; Значение параметров настройки: --host=... Указывает, что должен использоваться кросс-компилятор, который мы только что собрали, вместо того, который находится в /usr/bin. --disable-libstdcxx-pch Этот аргумент предотвращает установку предварительно скомпилированных include-файлов, которые на данном этапе не нужны. --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version; Указывает каталог установки для include-файлов. Поскольку libstdc++ является стандартной библиотекой C++ для LFS, этот каталог должен соответствовать местоположению, в котором компилятор C++ ($LFS_TGT-g++) будет искать стандартные включаемые файлы C++. При обычной сборке эта информация автоматически передается в Libstdc++ при выполнении configure из каталога верхнего уровня. В нашем случае эта информация должна быть указана явно. Компилятор C++ добавит путь sysroot $LFS (указанный при сборке GCC Проход 1) к пути поиска include-файлов, поэтому фактически он будет искать в $LFS/tools/$LFS_TGT/include/c++/&gcc-version;. Комбинация переменной DESTDIR (в приведенной ниже команде make install) и этого аргумента обеспечивает установку заголовочных файлов туда. Скомпилируйте Libstdc++, выполнив: make Установите библиотеку: make DESTDIR=$LFS install Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции: rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la <para>Подробная информация об этом пакете приведена в <xref linkend="contents-gcc" role="."/></para> </sect2> </sect1>