summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter06/ncurses.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-03-06 10:25:41 +0300
committerSn4il <sn4il@thedroth.rocks>2024-03-06 10:25:41 +0300
commit5a6834585c43296c2207f5f251d3d5c237c7c8d2 (patch)
tree5c3f9adc4c5fd0b3bdc3b017b021a36016c0f15b /lfs-12.1-sysv/chapter06/ncurses.html
parent2b6ec04f001bbdf660476a1275d90075d746833c (diff)
downloadsn4il-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.html309
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">Раздел&nbsp;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>