我在这个网站上查看了类似的问题并搜索了为什么会发生这种情况,但尝试了这些解决方案not able to compile,difference between ncurses and curses,another compile error,但我仍然遇到问题错误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;
}
如果你能指出我错过的或做错了,我会非常感激。
答案 0 :(得分:2)
ncurses.h
是一个头文件(包含声明),而不是一个库(包含实现这些声明的代码)。
您看到的错误消息来自链接器,而不是来自编译器。
如果您正在使用gcc,则需要将-lcurses
或-lncurses
添加到编译器命令行(在源文件名之后)。
例如,在我的系统上,我将您的源代码复制到c.c
,我可以使用
gcc c.c -o c -lcurses
或
gcc c.c -o c -lncurses