Что обеспечивает заголовки curses с именем curses.h?

27

Мне нужно несколько заголовочных файлов, а именно curses.h для текстового программирования. Пожалуйста, скажите мне, как установить эти заголовочные файлы.

кодировщик
источник

Ответы:

54

Вы можете установить пакет libncurses5-dev через Центр программного обеспечения или:

sudo apt-get install libncurses5-dev

Также вы можете установить пакет , нажав здесь .

Когда вам нужен файл или пакет, и вы не можете его найти, вы можете использовать некоторые инструменты.

1. apt-файл

Сначала установите apt-файл и обновите его.

sudo apt-get install apt-file
apt-file update

Вы можете искать с помощью apt-файла необходимые файлы или пакеты.

apt-file search curses.h

2. Используйте packages.ubuntu.com

Перейдите по этой ссылке .

Справа вверху выберите содержимое пакета, если вы ищете файл, включенный в пакет. Если вам нужен пакет напрямую, просто ищите его по имени, выбирая имена пакетов .

heartsmagic
источник
Можете ли вы сказать мне, что содержит пакет libncurses?
кодер
подскажите пожалуйста как получить gtk.h
кодер
1
@sharik, я отредактировал свой ответ. Поиск пакетов может быть сложным, так как при поиске этих файлов вы можете получить много имен пакетов. Вы должны знать, что вы ищете. Возможно, вам сейчас нужен libgtk2.0-dev или libgtk-3-dev . Но, поскольку вы используете 11.10, сначала выберите libgtk-3-dev . Если у вас есть еще вопросы, просто отредактируйте свой вопрос, чтобы расширить его. Не спрашивайте по одному в ваших комментариях.
Heartmagic
Черт возьми, я не могу поверить, что никогда не слышал о apt-file после его использования все эти годы. Спасибо за совет, круто!
xamox
9

Найти пакет из файла

Изменить: Это работает только для установленного пакета, поэтому не может ответить на вопрос. Лучше ответ сердца

Чтобы узнать, в какой пакет входит файл, вы можете использовать

dpkg -S <file name>

Например, dpkg -S curses.hдает мне такой вывод:

libncurses5-dev: /usr/include/ncurses.h
libncurses5-dev: /usr/include/curses.h

Найти файлы в пакете

Редактировать: вам нужно установить пакет, чтобы это работало.

Чтобы получить список файлов, предоставляемых пакетом, используйте

 dpkg -L <package name>

Например, dpkg -L libncurses5-devдает мне следующий вывод

/.
/usr
/usr/include
/usr/include/curses.h
/usr/include/cursesapp.h
/usr/include/cursesf.h
/usr/include/cursesm.h
/usr/include/cursesp.h
/usr/include/cursesw.h
/usr/include/cursslk.h
/usr/include/eti.h
/usr/include/etip.h
/usr/include/form.h
/usr/include/menu.h
/usr/include/nc_tparm.h
/usr/include/ncurses_dll.h
/usr/include/panel.h
/usr/include/term.h
/usr/include/term_entry.h
/usr/include/termcap.h
/usr/include/tic.h
/usr/include/unctrl.h
/usr/lib
/usr/lib/libform.a
/usr/lib/libmenu.a
/usr/lib/libncurses++.a
/usr/lib/libncurses.a
/usr/lib/libpanel.a
/usr/lib/libtic.a
/usr/share
/usr/share/doc
/usr/share/doc/libncurses5-dev
/usr/share/doc/libncurses5-dev/copyright
/usr/share/doc/libncurses5-dev/changelog.Debian.gz
/usr/include/ncurses.h
/usr/lib/libncurses.so
/usr/lib/libtic.so
/usr/lib/libform.so
/usr/lib/libmenu.so
/usr/lib/libpanel.so
/usr/lib/libcurses.a
/usr/lib/libtermcap.a
/usr/lib/libtermcap.so
/usr/lib/libcurses.so

Это также относится и к каталогам.


Найти ТОЛЬКО файлы (не каталоги) в пакете

Чтобы получить только файлы, пакет содержит:

dpkg -L libncurses5-dev | while read file; do if [[ -f $file ]]; then echo ${file}; fi; done

(Описание: получите предоставленные файлы, и для каждого распечатайте их, только если это файл.)


Больше информации

Вы можете найти эту таблицу полезной. Просто посмотрите на первый столбец (action) и третий столбец (deb), чтобы получить хороший обзор того, что вы можете сделать. (если, конечно, вам не любопытно, посмотрите на другие столбцы.)

Portablejim
источник
Это хорошая информация. Но есть небольшая проблема в этом вопросе. Поскольку пакет libncurses5-dev не установлен и в его системе нет curses.h, он не может найти реальный пакет, который это обеспечивает. Но, кроме того, это хорошая информация.
heartsmagic
@heartsmagic Спасибо за указание на это. Я предполагаю, что исследовал Contents-i386 и т. Д. (как в mirror.aarnet.edu.au/pub/ubuntu/archive/dists/oneiric ) и думал, что он будет использовать это, но на самом деле это не так.
Portablejim