我正在运行 Ubuntu 12.04,我目前正在从事一个涉及 C、OpenGL、茶壶和输入法的项目。
当我决定将箭头键作为输入时,问题就开始了。我检查了箭头键的键码,但所有箭头都返回 0。我查找了如何使它工作,我找到了 conio.h。不幸的是,它是一个旧的 DOS 头文件,不适用于 Linux。然后我找到了一个叫做 ncurses 的替代品。
安装必要的库后,通过密切遵循构建说明,我在 main.c 源代码中添加了 #included curses.h。当我第一次尝试使用 gcc 进行编译时,出现以下错误:
main.o:main.c:function _Key: error: undefined reference to 'stdscr'
main.o:main.c:function _Key: error: undefined reference to 'wgetch'
main.o:main.c:function _Key: error: undefined reference to 'stdscr'
main.o:main.c:function _Key: error: undefined reference to 'wgetch'
我通过将 -lncurses 添加到 makefile 中找到了解决方法,如下所示:
SOURCES=main.c
main: main.o
gcc -lm -lGL -lGLU -lglut -lncurses main.o -o main
main.o: main.c
gcc -lm -lGL -lGLU -lglut -c main.c
但是我遇到了另一个错误:
/usr/bin/ld: error: cannot find -lncurses
以及之前的错误。
在过去的 2 天里,我一直在搜索 Ubuntu 论坛和 StackOverFlow。任何帮助,将不胜感激。
PS 我不知道这是否重要,但是当我尝试运行 /usr/bin/ld 时出现此错误:
ld: fatal error: no input files