Инструменты пользователя

Инструменты сайта


software:linux_server:lfs-example:chapter05

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:linux_server:lfs-example:chapter05 [2024/07/15 00:59] – [5.5.1. Установка пакета Glibc-2.39] vladpolskiysoftware:linux_server:lfs-example:chapter05 [2024/07/15 01:22] (текущий) – [5.6.1. Установка библиотеки Libstdc++] vladpolskiy
Строка 470: Строка 470:
 Сборка пакетов в следующей главе послужит дополнительной проверкой правильности сборки временного кросс-тулчейна. Если какой-либо пакет, особенно Binutils или GCC, не удается собрать, это указывает на то, что что-то пошло не так с установленными ранее Binutils, GCC, или Glibc. Сборка пакетов в следующей главе послужит дополнительной проверкой правильности сборки временного кросс-тулчейна. Если какой-либо пакет, особенно Binutils или GCC, не удается собрать, это указывает на то, что что-то пошло не так с установленными ранее Binutils, GCC, или Glibc.
 </WRAP> </WRAP>
 +Перейдем в каталог sources и удалим более не нужный разорхивированный каталог glibc-2.39 
 +<code> 
 +cd ../.. 
 +rm -Rf glibc-2.39 
 +</code> 
 +{{:software:linux_server:lfs-example:lfs_example_128.png?|}}
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.5.3. Содержимое пакета Glibc|Раздел 8.5.3. «Содержимое пакета Glibc.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.5.3. Содержимое пакета Glibc|Раздел 8.5.3. «Содержимое пакета Glibc.»]]
  
Строка 485: Строка 490:
 Libstdc++ является частью исходников GCC. Сначала вы должны распаковать архив GCC и перейти в каталог gcc-13.2.0. Libstdc++ является частью исходников GCC. Сначала вы должны распаковать архив GCC и перейти в каталог gcc-13.2.0.
 </WRAP> </WRAP>
 +Распаковываем архив и переходим в каталог с его содержимым 
 +<code> 
 +tar -xvf gcc-13.2.0.tar.xz 
 +cd gcc-13.2.0 
 +</code> 
 +{{:software:linux_server:lfs-example:lfs_example_129.png?|}}
 Создайте отдельный каталог сборки для libstdc++ и перейдите в него: Создайте отдельный каталог сборки для libstdc++ и перейдите в него:
- 
 <code> <code>
 mkdir -v build mkdir -v build
 cd       build cd       build
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_130.png?|}}
 Подготовьте libstdc++ к компиляции: Подготовьте libstdc++ к компиляции:
  
Строка 505: Строка 514:
     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0
 </code> </code>
- +{{:software:linux_server:lfs-example:lfs_example_131.png?|}} 
-===Значение параметров настройки:===+<details> 
 +<summary>«**Значение параметров настройки:**»</summary>
  
   * **--host=...**   * **--host=...**
Строка 516: Строка 526:
   * **--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0**   * **--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.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++/13.2.0. Комбинация переменной DESTDIR (в приведенной ниже команде make install) и этого аргумента обеспечивает установку заголовочных файлов туда. Указывает каталог установки для include-файлов. Поскольку libstdc++ является стандартной библиотекой C++ для LFS, этот каталог должен соответствовать местоположению, в котором компилятор C++ ($LFS_TGT-g++) будет искать стандартные включаемые файлы C++. При обычной сборке эта информация автоматически передается в Libstdc++ при выполнении configure из каталога верхнего уровня. В нашем случае эта информация должна быть указана явно. Компилятор C++ добавит путь sysroot $LFS (указанный при сборке GCC Проход 1) к пути поиска include-файлов, поэтому фактически он будет искать в $LFS/tools/$LFS_TGT/include/c++/13.2.0. Комбинация переменной DESTDIR (в приведенной ниже команде make install) и этого аргумента обеспечивает установку заголовочных файлов туда.
 +</details>
 Скомпилируйте Libstdc++, выполнив: Скомпилируйте Libstdc++, выполнив:
 +{{:software:linux_server:lfs-example:lfs_example_132.png?|}}
 <code> <code>
-make+time make
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_133.png?|}}
 Установите библиотеку: Установите библиотеку:
 +{{:software:linux_server:lfs-example:lfs_example_134.png?|}}
 <code> <code>
 make DESTDIR=$LFS install make DESTDIR=$LFS install
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_135.png?|}}
 Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции: Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции:
  
Строка 534: Строка 544:
 rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_136.png?|}} 
 +Перейдем в каталог sources и удалим более не нужный разорхивированный каталог binutils-2.42 
 +<code> 
 +cd ../.. 
 +rm -Rf gcc-13.2.0 
 +</code>
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.28.2. Содержимое пакета GCC|Разделе 8.28.2. «Содержимое пакета GCC.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.28.2. Содержимое пакета GCC|Разделе 8.28.2. «Содержимое пакета GCC.»]]
 +  * [[software:linux_server:lfs-example:chapter06|]]
software/linux_server/lfs-example/chapter05.1720994373.txt.gz · Последнее изменение: 2024/07/15 00:59 — vladpolskiy