我正在尝试 Nintendo DS 编程,我有一个 main.cpp 文件、一个 snake.h 文件和一个 snake.cpp 文件。当我编译(使用Makefile)时,我得到了
/home/david/Dropbox/sources/ds/04_snake/source/snake.cpp:228: undefined reference to `printBlock(int, int, unsigned short, int)'
/home/david/Dropbox/sources/ds/04_snake/source/snake.cpp:230: undefined reference to `printBlock(int, int, unsigned short, int)'
这是此功能中的错误
void drawSnake(game g) {
int i;
printBlock(g->s->last[0], g->s->last[1], g->bgColor, g->block);
for(i=0; g->s->points[i][0]!=-1 && i<MAXLENGHT; i++)
printBlock(g->s->points[i][0], g->s->points[i][1], g->s->color, g->block);
return;
}
但是在同一个文件中,大约 100 行之前,我有
int printBlock(game g, int x, int y, u16 color, int thickness) { /*code*/ }
如果我注释我使用 printBlock 的行(在 drawSnake 函数中),代码编译不会出错。我试图改变名字,改变职位,但我不明白为什么只有那个功能会给我错误。