diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-03-06 10:25:41 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-03-06 10:25:41 +0300 |
commit | 5a6834585c43296c2207f5f251d3d5c237c7c8d2 (patch) | |
tree | 5c3f9adc4c5fd0b3bdc3b017b021a36016c0f15b /lfs-12.1-sysv/chapter06/ncurses.html | |
parent | 2b6ec04f001bbdf660476a1275d90075d746833c (diff) | |
download | sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.tar.gz sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.zip |
Update LFS mirror
Diffstat (limited to 'lfs-12.1-sysv/chapter06/ncurses.html')
-rw-r--r-- | lfs-12.1-sysv/chapter06/ncurses.html | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/lfs-12.1-sysv/chapter06/ncurses.html b/lfs-12.1-sysv/chapter06/ncurses.html new file mode 100644 index 0000000..245ff48 --- /dev/null +++ b/lfs-12.1-sysv/chapter06/ncurses.html @@ -0,0 +1,309 @@ +<!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> + 6.3. Ncurses-6.4-20230520 + </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> + Глава 6. Кросс-Компиляция временных инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="m4.html" title="M4-1.4.19">Пред.</a> + <p> + M4-1.4.19 + </p> + </li> + <li class="next"> + <a accesskey="n" href="bash.html" title="Bash-5.2.21">След.</a> + <p> + Bash-5.2.21 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter06.html" title= + "Глава 6. Кросс-Компиляция временных инструментов">Наверх</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-ncurses" name="ch-tools-ncurses"></a>6.3. + Ncurses-6.4-20230520 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Ncurses содержит библиотеки для независимой от терминала + обработки ввода/вывода + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.3 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">51 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 6.3.1. Установка пакета Ncurses + </h2> + <p> + Во-первых, убедитесь, что <span class= + "command"><strong>gawk</strong></span> найден первым во время + настройки: + </p> + <pre class="userinput"><kbd class= + "command">sed -i s/mawk// configure</kbd></pre> + <p> + Затем выполните следующие команды, чтобы собрать программу + <span class="quote">«<span class="quote">tic</span>»</span> на + хосте сборки: + </p> + <pre class="userinput"><kbd class="command">mkdir build +pushd build + ../configure + make -C include + make -C progs tic +popd</kbd></pre> + <p> + Подготовьте Ncurses к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(./config.guess) \ + --mandir=/usr/share/man \ + --with-manpage-format=normal \ + --with-shared \ + --without-normal \ + --with-cxx-shared \ + --without-debug \ + --without-ada \ + --disable-stripping \ + --enable-widec</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение новых параметров настройки:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>--with-manpage-format=normal</code></em></span> + </dt> + <dd> + <p> + Этот аргумент предотвращает установку Ncurses сжатых страниц + руководства, это может произойти, если сам дистрибутив хоста + содержит сжатые страницы руководства. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--with-shared</code></em></span> + </dt> + <dd> + <p> + Этот аргумент позволяет Ncurses собирать и устанавливать + разделяемые библиотеки C. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-normal</code></em></span> + </dt> + <dd> + <p> + Этот аргумент предотвращает сборку и установку статических + библиотек C. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-debug</code></em></span> + </dt> + <dd> + <p> + Этот аргумент предотвращает сборку и установку отладочных + библиотек. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--with-cxx-shared</code></em></span> + </dt> + <dd> + <p> + Это аргумент позволяет Ncurses собирать и устанавливать общие + привязки C++. А также предотвращает сборку и установку + статических привязок C++. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-ada</code></em></span> + </dt> + <dd> + <p> + Этот аргумент гарантирует, что Ncurses будет собран без + поддержки компилятора Ada, который может присутствовать на + хосте, но будет недоступен, как только мы войдем в среду + <span class="command"><strong>chroot</strong></span>. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--disable-stripping</code></em></span> + </dt> + <dd> + <p> + Этот аргумент не позволяет системе сборки использовать + программу <span class="command"><strong>strip</strong></span> + с хоста. Использование инструментов хоста в + кросс-компилируемой программе может привести к сбою. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--enable-widec</code></em></span> + </dt> + <dd> + <p> + Этот аргумент указывает, что необходимо скомпилировать + библиотеки расширенных символов (такие как, <code class= + "filename">libncursesw.so.6.4-20230520</code>) вместо обычных + (таких как, <code class= + "filename">libncurses.so.6.4-20230520</code>). Эти библиотеки + расширенных символов можно использовать как в многобайтовой, + так и традиционной 8-битной локали, в то время как обычные + библиотеки корректно работают только в 8-битных локалях. + Библиотеки расширенных символов и обычные совместимы на + уровне исходного кода, но не совместимы в двоичном. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class= + "command">make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install +ln -sv libncursesw.so $LFS/usr/lib/libncurses.so +sed -e 's/^#if.*XOPEN.*$/#if 1/' \ + -i $LFS/usr/include/curses.h</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение параметров установки:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>TIC_PATH=$(pwd)/build/progs/tic</code></em></span> + </dt> + <dd> + <p> + Нам нужно передать путь до только что собранной программы + <span class="command"><strong>tic</strong></span>, которая + работает на сборочной машине, чтобы база данных терминала + была создана без ошибок. + </p> + </dd> + <dt> + <span class="term"><span class="command"><strong>ln -sv + libncursesw.so + $LFS/usr/lib/libncurses.so</strong></span></span> + </dt> + <dd> + <p> + Библиотека <code class="filename">libncurses.so</code> + необходима для нескольких пакетов, которые мы скоро соберем. + Мы создаем эту символическую ссылку, чтобы использовать + <code class="filename">libncursesw.so</code> в качестве + замены. + </p> + </dd> + <dt> + <span class="term"><span class="command"><strong>sed -e + 's/^#if.*XOPEN.*$/#if 1/' ...</strong></span></span> + </dt> + <dd> + <p> + Заголовочный файл <code class="filename">curses.h</code> + содержит определения различных структур данных Ncurses. С + разными определениями макросов препроцессора могут + использоваться два разных набора определений структуры + данных: 8-битное определение совместимо с <code class= + "filename">libncurses.so</code>, а определение расширенного + набора символов совместимо с <code class= + "filename">libncursesw.so</code> . Поскольку мы используем + <code class="filename">libncursesw.so</code> вместо + <code class="filename">libncurses.so</code>, отредактируйте + заголовочный файл, чтобы он всегда использовал определение + структуры данных расширенного набора символов, совместимое с + <code class="filename">. libncursesw.so</code>. + </p> + </dd> + </dl> + </div> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/ncurses.html#contents-ncurses" title= + "8.29.2. Содержимое пакета Ncurses">Раздел 8.29.2, «Содержимое + пакета Ncurses.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="m4.html" title="M4-1.4.19">Пред.</a> + <p> + M4-1.4.19 + </p> + </li> + <li class="next"> + <a accesskey="n" href="bash.html" title="Bash-5.2.21">След.</a> + <p> + Bash-5.2.21 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter06.html" title= + "Глава 6. Кросс-Компиляция временных инструментов">Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.1">Начало</a> + </li> + </ul> + </div> + </body> +</html> |