software:linux_server:lfs-example:chapter05
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:linux_server:lfs-example:chapter05 [2024/07/14 20:54] – [5.4.1. Установка заголовочных файлов] vladpolskiy | software:linux_server:lfs-example:chapter05 [2024/07/15 01:22] (текущий) – [5.6.1. Установка библиотеки Libstdc++] vladpolskiy | ||
---|---|---|---|
Строка 301: | Строка 301: | ||
|/ | |/ | ||
|/ | |/ | ||
+ | Перейдем в каталог sources и удалим более не нужный разорхивированный каталог linux-6.7.4 | ||
+ | < | ||
+ | cd .. | ||
+ | rm -Rf linux-6.7.4 | ||
+ | </ | ||
+ | {{: | ||
=====5.5. Glibc-2.39===== | =====5.5. Glibc-2.39===== | ||
Строка 308: | Строка 313: | ||
|Требуемое дисковое пространство: | |Требуемое дисковое пространство: | ||
- | ====5.5.1. Установка пакета Glibc==== | + | ====5.5.1. Установка пакета Glibc-2.39==== |
+ | Распакуем пакет glibc-2.39 и перейдем в распакованный каталог | ||
+ | < | ||
+ | tar -xvf glibc-2.39.tar.xz | ||
+ | cd glibc-2.39 | ||
+ | </ | ||
+ | {{: | ||
Во-первых, | Во-первых, | ||
- | |||
< | < | ||
case $(uname -m) in | case $(uname -m) in | ||
Строка 321: | Строка 330: | ||
esac | esac | ||
</ | </ | ||
+ | {{: | ||
<WRAP left round info 100%> | <WRAP left round info 100%> | ||
**Примечание** \\ | **Примечание** \\ | ||
Строка 332: | Строка 341: | ||
patch -Np1 -i ../ | patch -Np1 -i ../ | ||
</ | </ | ||
+ | {{: | ||
В документации к Glibc рекомендуется собирать Glibc в отдельном каталоге: | В документации к Glibc рекомендуется собирать Glibc в отдельном каталоге: | ||
Строка 339: | Строка 348: | ||
cd build | cd build | ||
</ | </ | ||
+ | {{: | ||
Убедитесь, | Убедитесь, | ||
Строка 345: | Строка 354: | ||
echo " | echo " | ||
</ | </ | ||
+ | {{: | ||
Затем подготовьте Glibc к компиляции: | Затем подготовьте Glibc к компиляции: | ||
Строка 359: | Строка 368: | ||
</ | </ | ||
- | ===Значение параметров настройки: | + | < |
+ | < | ||
* **--host=$LFS_TGT, | * **--host=$LFS_TGT, | ||
Строка 375: | Строка 385: | ||
* **--disable-nscd** | * **--disable-nscd** | ||
Параметр отключает сборку демона кэша службы имен, который больше не используется. | Параметр отключает сборку демона кэша службы имен, который больше не используется. | ||
+ | </ | ||
+ | {{: | ||
На этом этапе может появиться следующее предупреждение: | На этом этапе может появиться следующее предупреждение: | ||
Строка 390: | Строка 401: | ||
<WRAP left round info 100%> | <WRAP left round info 100%> | ||
**Примечание** \\ | **Примечание** \\ | ||
- | Поступали сообщения о том, что этот пакет может не компилироваться при «параллельной сборке». Если это произойдет, | + | Поступали сообщения о том, что этот пакет может не компилироваться при «параллельной сборке». Если это произойдет, |
</ | </ | ||
Строка 396: | Строка 407: | ||
< | < | ||
- | make | + | time make |
</ | </ | ||
- | + | {{:software: | |
- | Установите пакет: | + | |
<WRAP left round alert 100%> | <WRAP left round alert 100%> | ||
Строка 405: | Строка 415: | ||
Если переменная LFS настроена неправильно, | Если переменная LFS настроена неправильно, | ||
</ | </ | ||
+ | выполним проверки | ||
+ | < | ||
+ | id | ||
+ | </ | ||
+ | {{: | ||
+ | < | ||
+ | echo $LFS | ||
+ | </ | ||
+ | {{: | ||
+ | Установите пакет: | ||
< | < | ||
make DESTDIR=$LFS install | make DESTDIR=$LFS install | ||
</ | </ | ||
+ | {{: | ||
+ | Результат установки | ||
+ | {{: | ||
===Значение опции make install:=== | ===Значение опции make install:=== | ||
Строка 420: | Строка 441: | ||
sed '/ | sed '/ | ||
</ | </ | ||
+ | {{: | ||
<WRAP left round important 100%> | <WRAP left round important 100%> | ||
**Внимание** \\ | **Внимание** \\ | ||
Строка 432: | Строка 453: | ||
[Requesting program interpreter: | [Requesting program interpreter: | ||
</ | </ | ||
+ | {{: | ||
Обратите внимание, | Обратите внимание, | ||
Строка 440: | Строка 462: | ||
rm -v a.out | rm -v a.out | ||
</ | </ | ||
+ | {{: | ||
</ | </ | ||
Строка 447: | Строка 470: | ||
Сборка пакетов в следующей главе послужит дополнительной проверкой правильности сборки временного кросс-тулчейна. Если какой-либо пакет, особенно Binutils или GCC, не удается собрать, | Сборка пакетов в следующей главе послужит дополнительной проверкой правильности сборки временного кросс-тулчейна. Если какой-либо пакет, особенно Binutils или GCC, не удается собрать, | ||
</ | </ | ||
+ | Перейдем в каталог sources и удалим более не нужный разорхивированный каталог glibc-2.39 | ||
+ | < | ||
+ | cd ../.. | ||
+ | rm -Rf glibc-2.39 | ||
+ | </ | ||
+ | {{: | ||
Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
Строка 462: | Строка 490: | ||
Libstdc++ является частью исходников GCC. Сначала вы должны распаковать архив GCC и перейти в каталог gcc-13.2.0. | Libstdc++ является частью исходников GCC. Сначала вы должны распаковать архив GCC и перейти в каталог gcc-13.2.0. | ||
</ | </ | ||
+ | Распаковываем архив и переходим в каталог с его содержимым | ||
+ | < | ||
+ | tar -xvf gcc-13.2.0.tar.xz | ||
+ | cd gcc-13.2.0 | ||
+ | </ | ||
+ | {{: | ||
Создайте отдельный каталог сборки для libstdc++ и перейдите в него: | Создайте отдельный каталог сборки для libstdc++ и перейдите в него: | ||
- | |||
< | < | ||
mkdir -v build | mkdir -v build | ||
cd build | cd build | ||
</ | </ | ||
+ | {{: | ||
Подготовьте libstdc++ к компиляции: | Подготовьте libstdc++ к компиляции: | ||
Строка 482: | Строка 514: | ||
--with-gxx-include-dir=/ | --with-gxx-include-dir=/ | ||
</ | </ | ||
- | + | {{: | |
- | ===Значение параметров настройки: | + | < |
+ | < | ||
* **--host=...** | * **--host=...** | ||
Строка 493: | Строка 526: | ||
* **--with-gxx-include-dir=/ | * **--with-gxx-include-dir=/ | ||
Указывает каталог установки для include-файлов. Поскольку libstdc++ является стандартной библиотекой C++ для LFS, этот каталог должен соответствовать местоположению, | Указывает каталог установки для include-файлов. Поскольку libstdc++ является стандартной библиотекой C++ для LFS, этот каталог должен соответствовать местоположению, | ||
+ | </ | ||
Скомпилируйте Libstdc++, выполнив: | Скомпилируйте Libstdc++, выполнив: | ||
+ | {{: | ||
< | < | ||
- | make | + | time make |
</ | </ | ||
+ | {{: | ||
Установите библиотеку: | Установите библиотеку: | ||
+ | {{: | ||
< | < | ||
make DESTDIR=$LFS install | make DESTDIR=$LFS install | ||
</ | </ | ||
+ | {{: | ||
Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции: | Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции: | ||
Строка 511: | Строка 544: | ||
rm -v $LFS/ | rm -v $LFS/ | ||
</ | </ | ||
+ | {{: | ||
+ | Перейдем в каталог sources и удалим более не нужный разорхивированный каталог binutils-2.42 | ||
+ | < | ||
+ | cd ../.. | ||
+ | rm -Rf gcc-13.2.0 | ||
+ | </ | ||
Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
+ | * [[software: |
software/linux_server/lfs-example/chapter05.1720979695.txt.gz · Последнее изменение: 2024/07/14 20:54 — vladpolskiy