software:linux_server:lfs-example:chapter05
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| software:linux_server:lfs-example:chapter05 [2024/07/14 20:59] – [5.4.2. Содержимое заголовочных файлов Linux API] vladpolskiy | software:linux_server:lfs-example:chapter05 [2024/07/15 01:22] (текущий) – [5.6.1. Установка библиотеки Libstdc++] vladpolskiy | ||
|---|---|---|---|
| Строка 313: | Строка 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 | ||
| Строка 326: | Строка 330: | ||
| esac | esac | ||
| </ | </ | ||
| + | {{: | ||
| <WRAP left round info 100%> | <WRAP left round info 100%> | ||
| **Примечание** \\ | **Примечание** \\ | ||
| Строка 337: | Строка 341: | ||
| patch -Np1 -i ../ | patch -Np1 -i ../ | ||
| </ | </ | ||
| + | {{: | ||
| В документации к Glibc рекомендуется собирать Glibc в отдельном каталоге: | В документации к Glibc рекомендуется собирать Glibc в отдельном каталоге: | ||
| Строка 344: | Строка 348: | ||
| cd build | cd build | ||
| </ | </ | ||
| + | {{: | ||
| Убедитесь, | Убедитесь, | ||
| Строка 350: | Строка 354: | ||
| echo " | echo " | ||
| </ | </ | ||
| + | {{: | ||
| Затем подготовьте Glibc к компиляции: | Затем подготовьте Glibc к компиляции: | ||
| Строка 364: | Строка 368: | ||
| </ | </ | ||
| - | ===Значение параметров настройки: | + | < |
| + | < | ||
| * **--host=$LFS_TGT, | * **--host=$LFS_TGT, | ||
| Строка 380: | Строка 385: | ||
| * **--disable-nscd** | * **--disable-nscd** | ||
| Параметр отключает сборку демона кэша службы имен, который больше не используется. | Параметр отключает сборку демона кэша службы имен, который больше не используется. | ||
| + | </ | ||
| + | {{: | ||
| На этом этапе может появиться следующее предупреждение: | На этом этапе может появиться следующее предупреждение: | ||
| Строка 395: | Строка 401: | ||
| <WRAP left round info 100%> | <WRAP left round info 100%> | ||
| **Примечание** \\ | **Примечание** \\ | ||
| - | Поступали сообщения о том, что этот пакет может не компилироваться при «параллельной сборке». Если это произойдет, | + | Поступали сообщения о том, что этот пакет может не компилироваться при «параллельной сборке». Если это произойдет, |
| </ | </ | ||
| Строка 401: | Строка 407: | ||
| < | < | ||
| - | make | + | time make |
| </ | </ | ||
| - | + | {{:software: | |
| - | Установите пакет: | + | |
| <WRAP left round alert 100%> | <WRAP left round alert 100%> | ||
| Строка 410: | Строка 415: | ||
| Если переменная LFS настроена неправильно, | Если переменная LFS настроена неправильно, | ||
| </ | </ | ||
| + | выполним проверки | ||
| + | < | ||
| + | id | ||
| + | </ | ||
| + | {{: | ||
| + | < | ||
| + | echo $LFS | ||
| + | </ | ||
| + | {{: | ||
| + | Установите пакет: | ||
| < | < | ||
| make DESTDIR=$LFS install | make DESTDIR=$LFS install | ||
| </ | </ | ||
| + | {{: | ||
| + | Результат установки | ||
| + | {{: | ||
| ===Значение опции make install:=== | ===Значение опции make install:=== | ||
| Строка 425: | Строка 441: | ||
| sed '/ | sed '/ | ||
| </ | </ | ||
| + | {{: | ||
| <WRAP left round important 100%> | <WRAP left round important 100%> | ||
| **Внимание** \\ | **Внимание** \\ | ||
| Строка 437: | Строка 453: | ||
| [Requesting program interpreter: | [Requesting program interpreter: | ||
| </ | </ | ||
| + | {{: | ||
| Обратите внимание, | Обратите внимание, | ||
| Строка 445: | Строка 462: | ||
| rm -v a.out | rm -v a.out | ||
| </ | </ | ||
| + | {{: | ||
| </ | </ | ||
| Строка 452: | Строка 470: | ||
| Сборка пакетов в следующей главе послужит дополнительной проверкой правильности сборки временного кросс-тулчейна. Если какой-либо пакет, особенно Binutils или GCC, не удается собрать, | Сборка пакетов в следующей главе послужит дополнительной проверкой правильности сборки временного кросс-тулчейна. Если какой-либо пакет, особенно Binutils или GCC, не удается собрать, | ||
| </ | </ | ||
| + | Перейдем в каталог sources и удалим более не нужный разорхивированный каталог glibc-2.39 | ||
| + | < | ||
| + | cd ../.. | ||
| + | rm -Rf glibc-2.39 | ||
| + | </ | ||
| + | {{: | ||
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 467: | Строка 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++ к компиляции: | ||
| Строка 487: | Строка 514: | ||
| --with-gxx-include-dir=/ | --with-gxx-include-dir=/ | ||
| </ | </ | ||
| - | + | {{: | |
| - | ===Значение параметров настройки: | + | < |
| + | < | ||
| * **--host=...** | * **--host=...** | ||
| Строка 498: | Строка 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, поскольку они потенциально опасны при кросс-компиляции: | ||
| Строка 516: | Строка 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.1720979973.txt.gz · Последнее изменение: — vladpolskiy
