CC编译器(minix)中未定义的函数



我有一个神秘的问题!在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时,编译器会在main.c中给出一个undefined _batalha_naval();。如果我在jogo.h中定义函数,则不会出现错误,但如果我这样做,则会出现错误。

我使用CC编译器

  1. 您的jogo.h显示正确。如果您希望在多个编译单元中使用函数"batalha_naval()",则需要它。

  2. 你应该#include "jogo.h"'在main.c中,而在jogo.c.

  3. 链接命令中必须包含main和jogo。

如何链接?您需要这样做:

<>之前$ cc -c main.c$ cc -c jogo.c$ cc main。o jogo.o之前

<>之前$ cc main.c jogo.c

最新更新