我正在编译一个在shell上创建窗口的程序。当我编译时,我得到像
这样的错误test.c:(.text+0x25): undefined reference to `newwin'
test.c:(.text+0x73): undefined reference to `wborder'
test.c:(.text+0xb6): undefined reference to `mvwprintw'
..
..
我的一个职能是
WINDOW *f_top, *f_bottom;
WINDOW *create_window(int n, int d, char *t){
WINDOW *frame;
WINDOW *w;
frame = newwin(n, COLS, d, 0);
box(frame,0,0);
mvwprintw(frame,0,COLS/2-strlen(t)/2,t);
wrefresh(frame);
w = newwin(n-2, COLS-2, d+1, 1);
idlok(w, TRUE);
scrollok(w, TRUE);
wclear(w);
wrefresh(w);
return w;
}
答案 0 :(得分:3)
您需要链接curses库。函数在那里定义。
尝试
gcc ... test.c ... -lcurses ...
或者
gcc ... test.c ... -lncurses ...
答案 1 :(得分:0)
更明确一点,
首先,如果需要,您需要安装curses(或ncurses)库。
其次,包括curses.h
第三,需要找到这些,你可能会遇到$ PATH的问题。
最后,根据读取的时间长短,可能会有“弃用”功能。 - 在curses.h(以及网页)中搜索名称。
通常,对于64位Linux安装,所涉及的资产可以在以下位置找到:
/usr/lib/x86_64-linux-gnu/libncurses.so
/usr/include/curses.h