如何在Kali上使用C中的ncurses编译“Hello World”

时间:2018-06-16 17:11:49

标签: c gcc ncurses

我已经在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等编译之后,我不得不向社区寻求帮助!

4 个答案:

答案 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/

提供了类似的列表合成器