0

我有一个神秘的问题!在 main.c 我有以下内容:

#include "jogo.h"
int main(){
    int i;
    sef_startup();
    vg_init(0x105);
    batalha_naval();
    sleep(5);
    vg_exit();
    return 0;
}

在 jogo.h 我有:

#ifndef __JOGO_H
#define __JOGO_H
void batalha_naval(void);
#endif

在 main.c 我有:

#include "core.h"
void batalha_naval(void) {
    vg_draw_line(0, 0, 1023, 0, 12);
}

但是在执行 make 时,编译器会undefined _batalha_naval();在 main.c 中给出一个。如果我在 jogo.h 中定义函数,则不会出现错误,但如果我这样做,则会出现错误。

我正在使用 CC 编译器。

4

2 回答 2

0

你怎么链接?您需要执行以下任一操作:

$ cc -c main.c
$ cc -c jogo.c
$ cc main.o jogo.o

或者

$ cc main.c jogo.c
于 2011-11-19T22:16:20.553 回答
0
  1. 你的 jogo.h 看起来是正确的。如果您希望在多个编译单元中使用函数“batalha_naval()”,则需要它。

  2. 您应该在 main.c 和 jogo.c 中使用 '#include "jogo.h"'。

  3. 您必须在链接命令中同时包含 main 和 jogo。

于 2011-11-19T22:18:44.210 回答