我已经在Kali中成功安装了ncurses(至少在ncurses-6.1 / test文件夹中包含的示例工作),但我自己无法编译任何内容。
我的代码:
#include <stdlib.h>
#include <ncurses.h>
int main(void)
{
initscr();
printw("Hello World!!");
refresh();
getch();
endwin();
return 0;
}
编译失败:
gcc game.c -lncurses
fatal error: ncurses.h: No such file or directory
我已经详尽地研究了这个类似的问题,其中包括:
g++ can't find ncurses.h despite it being installed
不幸的是,在尝试了包括curses.h和ncurses.h的各种排列,用-lncurses或-lncursesw等编译之后,我不得不向社区寻求帮助!
答案 0 :(得分:2)
听起来像是手动安装的。如果是这种情况,那么无论您在哪里安装它都需要#include "/path/to/ncurses.h"
。
如果您使用aptitude(afaik是默认的Kali包管理器),您可能需要通过apt-get install libncurses-dev
安装开发包。
希望有所帮助。
答案 1 :(得分:0)
您应该使用-I标志或-iquote编译程序,其中包含包含ncurses.h文件的目录的路径
对我来说:
gcc game.c -lncurses -iquote/usr/include/
或者您可以将包含更改为#include </usr/include/ncurses.h>
答案 2 :(得分:0)
根据@Thomas Dickey的评论,我去了invisible-island.net/ncurses并从“ Development ncurses源(通过http通过gzip的tar)”链接下载了一个干净的副本,并使用./configure
{ {1}} make install
,然后一切都变魔术了。
不需要额外的命令行参数。只是make
使用带有gcc game.c -lncurses
的源文件。就是说,我不知道为什么在其他人的建议下它不起作用。我以前下载的ncurses确实有头文件。
答案 3 :(得分:0)
关键证据是你说的时候
当我运行“ apt-get install libncurses-dev”时,它说“ E:无法找到软件包libncurses-dev。”
,这意味着您的计算机需要进行设置才能访问更广泛的软件包,一旦找到,它就会找到该软件包。发出这个
cat /etc/apt/sources.list
我们只需要更好地填充该文件...由于Kali基于debian版本测试,因此以下链接可以综合/etc/apt/sources.list所需的适当内容
https://debgen.simplylinux.ch/
假设(我没有Kali盒)使用debian测试,只需备份sources.list,将其清空并将其粘贴到您的/etc/apt/sources.list中(由https://debgen.simplylinux.ch/合成)>
#------------------------------------------------------------------------------#
# OFFICIAL DEBIAN REPOS
#------------------------------------------------------------------------------#
###### Debian Main Repos
deb http://deb.debian.org/debian/ testing main contrib non-free
deb-src http://deb.debian.org/debian/ testing main contrib non-free
deb http://deb.debian.org/debian/ testing-updates main contrib non-free
deb-src http://deb.debian.org/debian/ testing-updates main contrib non-free
deb http://deb.debian.org/debian-security testing/updates main
deb-src http://deb.debian.org/debian-security testing/updates main
在上面注意每行的单词test,不同的debian版本将用jessie或Stretch替换该单词...然后发出
sudo apt install curl wget apt-transport-https dirmngr
sudo apt-get update && sudo apt-get dist-upgrade
终于可以安装了
sudo apt-get install libncurses-dev
您可能在原始/etc/apt/sources.list中拥有的任何存储库都可以放回该文件中
PS 类人也为ubuntu https://repogen.simplylinux.ch/
提供了类似的列表合成器