2011-11-19 4 views
0

나는 신비한 문제가 있습니다! 을 main.c에서 내가 다음과 같습니다CC 컴파일러 (미닉스)에서 정의되지 않은 기능

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

을 그리고 main.c를 내가 가지고 : 다음 jogo.h에서

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

을 내가 가지고

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

그러나 컴파일러를 만들 때 컴파일러는 undefined _batalha_naval();을 main.c에 제공합니다. jogo.h에서 함수를 정의하면 오류가 나타나지 않지만이 경우 오류가 나타납니다.

저는 CC 컴파일러를 사용하고 있습니다.

+0

컴파일 할 때 사용하는 명령을 표시하십시오. – AusCBloke

+0

core.h에 포함 된 항목은 무엇입니까? – Hogan

답변

0
  1. 귀하의 jogo.h 올바른 나타납니다. 여러 컴파일 단위에서 "batalha_naval()"함수를 사용하려는 경우 필요합니다.

  2. main.c와 jogo.c에서 '#include "jogo.h"'를 사용해야합니다.

  3. 링크 명령에 main과 jogo를 모두 포함해야합니다.

+0

안녕하세요, 마지막 코드는 main.c에있었습니다. 죄송합니다. –

0

어떻게 연결하나요? 당신이 중 하나를 수행해야합니다

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

또는

 
$ cc main.c jogo.c 
+0

아, 그게 문제일지도 몰라요 !! –

관련 문제