是什么提供了名为curses.h的curses标头?


27

我需要一些头文件,即curses.h,用于基于文本的编程。请告诉我如何安装这些头文件。

Answers:


54

您可以通过软件中心或以下方式安装libncurses5-dev软件包:

sudo apt-get install libncurses5-dev

另外,您可以通过单击此处安装软件包。

当您需要文件或程序包而找不到时,可以使用一些工具。

1. apt文件

首先,安装apt-file并更新它。

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

您可以使用apt-file所需的文件或软件包进行搜索。

apt-file search curses.h

2.使用packages.ubuntu.com

转到此链接

如果要搜索程序包随附的文件,请在右上角选择程序包内容。如果您直接需要一个软件包,只需使用其名称选择软件包名称进行搜索


你能告诉我libncurses软件包包含什么吗?
编码器

请告诉我如何获取gtk.h
编码器

1
@sharik,我编辑了答案。查找软件包可能很棘手,因为当您搜索这些文件时,可以获得很多软件包名称。您必须知道您要寻找的东西。可能您现在需要libgtk2.0-devlibgtk-3-dev。但是,由于您使用的是11.10,因此首先选择libgtk-3-dev。如果您还有其他问题,只需编辑您的问题即可扩大范围。不要在评论中一一询问。
heartmagic

这些年来,我简直不敢相信我从未听说过apt-file。谢谢你的提示,太棒了!
xamox 2014年

9

从文件中查找包

编辑:这仅适用于已安装的软件包,因此无法回答该问题。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,因此他无法使用真正的软件包来提供此功能。但是,除此之外,这是一个很好的信息。
heartmagic

@heartsmagic感谢您指出这一点。我想我已经调查过Contents-i386等。(例如mirror.aarnet.edu.au/pub/ubuntu/archive/dists/oneiric中),并认为它会使用它,但实际上并没有。
Portablejim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.