0

我在这个网站上查看了类似的问题并用谷歌搜索了为什么会发生这种情况,但尝试了这些无法编译的解决方案,ncurses 和 curses 之间的区别另一个编译错误,但我仍然遇到错误问题,undefined reference to stdscr编译wgetch器正在寻找据我所知,该库是我用来find定位 curses 库并#include在行中输入完整位置的。

我的代码如下

#include <ncurses.h>
#include <stdio.h>
#include <string.h>

int first_line(char);
int main(){

    char c = 0;

    while((c = getch())!=EOF){
        first_line(c);

    }   

    return 0;
}

int first_line(char c){
    if (c != '\n' && c != '\r'){
            putchar(c);
        do{
            c = getch();
            putchar(c);}
            while( c !='\n');

    }
    else return 0;

    return 0;
}

如果您能指出我错过了什么或做错了什么,我将不胜感激。

4

1 回答 1

2

ncurses.h是一个头文件(包含声明),而不是一个库(包含实现这些声明的代码)。

您看到的错误消息来自链接器,而不是来自编译器。

如果您使用 gcc,则需要添加-lcurses或添加-lncurses到编译器命令行(源文件名之后)。

例如,在我的系统上,我将您的源代码复制到c.c,我可以使用以下任一方法编译和链接它

gcc c.c -o c -lcurses

或者

gcc c.c -o c -lncurses
于 2012-04-21T02:49:49.813 回答