summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter05/gcc-libstdc++.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
committerSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
commit2203e654b389586650d553251b04544a34f189bf (patch)
tree0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/chapter05/gcc-libstdc++.html
parent200d528e55ca954d37769f4d143f10c9519b00e7 (diff)
downloadsn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz
sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/chapter05/gcc-libstdc++.html')
-rw-r--r--lfs-12.1-sysv/chapter05/gcc-libstdc++.html214
1 files changed, 0 insertions, 214 deletions
diff --git a/lfs-12.1-sysv/chapter05/gcc-libstdc++.html b/lfs-12.1-sysv/chapter05/gcc-libstdc++.html
deleted file mode 100644
index a9eb128..0000000
--- a/lfs-12.1-sysv/chapter05/gcc-libstdc++.html
+++ /dev/null
@@ -1,214 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 5.6. Libstdc++ из GCC-13.2.0
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- </head>
- <body class="lfs" id="lfs-12.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 5. Сборка кросс-тулчейна
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="glibc.html" title="Glibc-2.39">Пред.</a>
- <p>
- Glibc-2.39
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="../chapter06/chapter06.html" title=
- "Кросс-Компиляция временных инструментов">След.</a>
- <p>
- Кросс-Компиляция временных инструментов
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter05.html" title=
- "Глава 5. Сборка кросс-тулчейна">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-tools-libstdcpp" name="ch-tools-libstdcpp"></a>5.6. Libstdc++
- из GCC-13.2.0
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Libstdc++ — это стандартная библиотека C++. Она нужна для
- компиляции кода C++ (часть GCC написана на C++), когда мы собирали
- <a class="xref" href="gcc-pass1.html" title=
- "5.3. GCC-13.2.0 - Проход 1">GCC-Проход 1</a>, нам пришлось
- отложить её установку, потому что она зависит от библиотеки Glibc,
- которой еще не было в целевом каталоге.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время сборки:</strong>
- <span class="segbody">0.2 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.1 GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 5.6.1. Установка библиотеки Libstdc++
- </h2>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- <span class="application">Libstdc++</span> является частью
- исходников GCC. Сначала вы должны распаковать архив GCC и перейти
- в каталог <code class="filename">gcc-13.2.0</code>.
- </p>
- </div>
- <p>
- Создайте отдельный каталог сборки для libstdc++ и перейдите в него:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте libstdc++ к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../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++/13.2.0</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--host=...</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает, что должен использоваться кросс-компилятор,
- который мы только что собрали, вместо того, который находится
- в <code class="filename">/usr/bin</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-libstdcxx-pch</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент предотвращает установку предварительно
- скомпилированных include-файлов, которые на данном этапе не
- нужны.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает каталог установки для include-файлов. Поскольку
- libstdc++ является стандартной библиотекой C++ для LFS, этот
- каталог должен соответствовать местоположению, в котором
- компилятор C++ (<span class=
- "command"><strong>$LFS_TGT-g++</strong></span>) будет искать
- стандартные включаемые файлы C++. При обычной сборке эта
- информация автоматически передается в Libstdc++ при
- выполнении <span class=
- "command"><strong>configure</strong></span> из каталога
- верхнего уровня. В нашем случае эта информация должна быть
- указана явно. Компилятор C++ добавит путь sysroot
- <code class="filename">$LFS</code> (указанный при сборке GCC
- Проход 1) к пути поиска include-файлов, поэтому фактически он
- будет искать в <code class=
- "filename">$LFS/tools/$LFS_TGT/include/c++/13.2.0</code>.
- Комбинация переменной <em class=
- "parameter"><code>DESTDIR</code></em> (в приведенной ниже
- команде <span class="command"><strong>make
- install</strong></span>) и этого аргумента обеспечивает
- установку заголовочных файлов туда.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте Libstdc++, выполнив:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Удалите архивные файлы libtool, поскольку они потенциально опасны
- при кросс-компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете приведена в <a class="xref"
- href="../chapter08/gcc.html#contents-gcc" title=
- "8.28.2. Содержимое пакета GCC">Раздел&nbsp;8.28.2, «Содержимое
- пакета GCC.»</a>
- </p>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="glibc.html" title="Glibc-2.39">Пред.</a>
- <p>
- Glibc-2.39
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="../chapter06/chapter06.html" title=
- "Кросс-Компиляция временных инструментов">След.</a>
- <p>
- Кросс-Компиляция временных инструментов
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter05.html" title=
- "Глава 5. Сборка кросс-тулчейна">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>