编译此代码时,出现以下gcc错误:
/tmp/ccUigsI6.o: In function `main':
/home/matt/Dropbox/school/2011/cs3210/test/sizeterm.c:9: undefined reference to `setupterm'
/home/matt/Dropbox/school/2011/cs3210/test/sizeterm.c:10: undefined reference to `tigetnum'
/home/matt/Dropbox/school/2011/cs3210/test/sizeterm.c:11: undefined reference to `tigetnum'
collect2: ld returned 1 exit status
make: *** [sizeterm] Error 1
这是代码:
#include <stdio.h>
#include <term.h>
#include <curses.h>
#include <stdlib.h>
int main()
{
int nrows, ncolumns;
setupterm(NULL, fileno(stdout), (int *)0);
nrows = tigetnum("lines");
ncolumns = tigetnum("cols");
printf("This terminal has %d columns and %d rows\n", ncolumns, nrows);
exit(0);
}
Libncurses已正确安装在我的计算机上。从我的Arch linux笔记本电脑和学校安装的Ubuntu服务器中,我得到了相同的结果。这部分特定的代码直接从本书中删除。难道我做错了什么?我已经进行了一些谷歌搜索,看起来好像人们以前曾经遇到过这个问题,但是我无法缩小解决方案的范围。
最佳答案
您忘了实际链接到ncurses。将-lcurses
添加到gcc命令行。