我正在使用ncurses编写基于终端的俄罗斯方块游戏.我已经将所有ncurses代码隔离到一个名为tetrisUI.c的文件中,该文件在main.c源文件中包括一个头文件.当我编译所有的ncurses函数时,都会引发编译器错误.我已经在源文件中包含了ncurses.h,并且在gcc中使用了-Incurses标志.我正在从具有以下内容的makefile进行编译:
Tetris : tetris.o main.o tetrisUI.o
gcc tetris.o main.o tetrisUI.o -o Tetris
tetrisUI.o : tetrisUI.c
gcc -std=c99 -c tetrisUI.c -lncurses
tetris.o : tetris.c tetris.h
gcc -std=c99 -c tetris.c
main.o : main.c tetris.h tetrisUI.h
gcc -std=c99 -c main.c
我能够使用ncurses编译一些简短的测试程序,就很好了.这是我第一次尝试使用ncurses,也是我的第一个重要的c程序(我在学校里做了一点c语言).我有一个预感,我的问题与我的makefile有关,但是我也不喜欢使用它们.
解决方法:
在链接阶段而不是在编译阶段使用-incurses:
gcc tetris.o main.o tetrisUI.o -o Tetris -lncurses