什么提供名为curses.h的 curses 头文件?

我需要一些头文件,特别是用于基于文本的编程。 请告诉我如何安装这些头文件。
2个回答

你可以通过软件中心或以下方式安装libncurses5-dev软件包:
sudo apt-get install libncurses5-dev

此外,您可以通过点击这里安装该软件包。
当您需要一个文件或软件包但找不到时,您可以使用一些工具。 1. apt-file 首先,安装apt-file并更新它。
sudo apt-get install apt-file
apt-file update

您可以使用 apt-file 搜索所需的文件或软件包。
apt-file search curses.h

2. 使用packages.ubuntu.com

点击这个链接

在右上角,如果你要搜索一个包中包含的文件,请选择package contents。如果你直接需要一个包,请选择package names并用它的名称进行搜索。


你能告诉我libncurses软件包包含什么内容吗? - coder
请告诉我如何获取 gtk.h。 - coder
1@sharik,我编辑了我的回答。找到软件包可能有点棘手,因为当你搜索这些文件时,会得到很多软件包名称。你必须知道自己在寻找什么。现在可能需要 libgtk2.0-dev 或者 libgtk-3-dev。但是,既然你正在使用11.10版本,请首先选择 libgtk-3-dev。如果你还有更多问题,请编辑你的问题以扩大范围。不要在评论中一个一个地提问。 - heartsmagic
天啊,我简直不敢相信这么多年来竟然从未听说过apt-file。谢谢你的提示,太棒了! - xamox

从文件中查找软件包

编辑:这只适用于已安装的软件包,无法回答问题。heartmagic的回答更好。

要找出一个文件属于哪个软件包,您可以使用以下方法:

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

(描述:获取提供的文件,对于每个文件,仅在其为文件时打印。)

更多信息

你可能会发现这张表很有用。只需看一下第一列(操作)和第三列(deb)就可以对你能做什么有个很好的概览。(当然,如果你好奇的话,也可以看看其他列。)


这是一个很好的信息。但是对于这个问题有一个小问题。由于他的系统上没有安装libncurses5-dev软件包,也没有curses.h文件,所以他无法使用它来找到提供这个功能的真正软件包。但是,除此之外,这是一个很好的信息。 - heartsmagic
@heartsmagic 谢谢你指出这个问题。我想我已经调查过Contents-i386等(例如在http://mirror.aarnet.edu.au/pub/ubuntu/archive/dists/oneiric/)并且以为它会使用那个,但实际上不是这样的。 - Portablejim