From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.2-sysv/chapter05/gcc-libstdc++.html | 214 +++++++++++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 lfs-12.2-sysv/chapter05/gcc-libstdc++.html (limited to 'lfs-12.2-sysv/chapter05/gcc-libstdc++.html') diff --git a/lfs-12.2-sysv/chapter05/gcc-libstdc++.html b/lfs-12.2-sysv/chapter05/gcc-libstdc++.html new file mode 100644 index 0000000..cd4082d --- /dev/null +++ b/lfs-12.2-sysv/chapter05/gcc-libstdc++.html @@ -0,0 +1,214 @@ + + + + + + 5.6. Libstdc++ из GCC-14.2.0 + + + + + + + + +

+ 5.6. Libstdc++ + из GCC-14.2.0 +

+
+
+

+ Libstdc++ — это стандартная библиотека C++. Она нужна для + компиляции кода C++ (часть GCC написана на C++), когда мы собирали + GCC-Проход 1, нам пришлось + отложить её установку, потому что она зависит от библиотеки Glibc, + которой еще не было в целевом каталоге. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 1.2 GB +
+
+
+
+
+

+ 5.6.1. Установка библиотеки Libstdc++ +

+
+ [Примечание] +

+ Примечание +

+

+ Libstdc++ является частью + исходников GCC. Сначала вы должны распаковать архив GCC и перейти + в каталог gcc-14.2.0. +

+
+

+ Создайте отдельный каталог сборки для 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++/14.2.0
+
+

+ Значение параметров настройки: +

+
+
+ --host=... +
+
+

+ Указывает, что должен использоваться кросс-компилятор, + который мы только что собрали, вместо того, который находится + в /usr/bin. +

+
+
+ --disable-libstdcxx-pch +
+
+

+ Этот аргумент предотвращает установку предварительно + скомпилированных include-файлов, которые на данном этапе не + нужны. +

+
+
+ --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/14.2.0 +
+
+

+ Указывает каталог установки для include-файлов. Поскольку + libstdc++ является стандартной библиотекой C++ для LFS, этот + каталог должен соответствовать местоположению, в котором + компилятор C++ ($LFS_TGT-g++) будет искать + стандартные включаемые файлы C++. При обычной сборке эта + информация автоматически передается в Libstdc++ при + выполнении configure из каталога + верхнего уровня. В нашем случае эта информация должна быть + указана явно. Компилятор C++ добавит путь sysroot + $LFS (указанный при сборке GCC + Проход 1) к пути поиска include-файлов, поэтому фактически он + будет искать в $LFS/tools/$LFS_TGT/include/c++/14.2.0. + Комбинация переменной DESTDIR (в приведенной ниже + команде make + install) и этого аргумента обеспечивает + установку заголовочных файлов туда. +

+
+
+
+

+ Скомпилируйте Libstdc++, выполнив: +

+
make
+

+ Установите библиотеку: +

+
make DESTDIR=$LFS install
+

+ Удалите архивные файлы libtool, поскольку они потенциально опасны + при кросс-компиляции: +

+
rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la
+
+
+

+ Подробная информация об этом пакете приведена в Раздел 8.29.2, «Содержимое + пакета GCC.» +

+
+
+ + + -- cgit v1.2.3