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 に a を与えます。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 に答える