2010-07-20 2 views
2

나는 게임 소스를 컴파일하려고하는데 내 gRace.cpp 파일이 제외되고있는 것 같습니다. 왜냐하면 모든 gRace 클래스 메소드에 대해 정의되지 않은 참조 오류를 반환하기 때문입니다..cpp 파일이 처리되지 않는 이유는 무엇입니까?

libtron.a(libtron_a-gGame.o): In function `gGame::StateUpdate()': 
gGame.cpp:(.text+0x99e9): undefined reference to `gRace::Reset()' 
libtron.a(libtron_a-gGame.o): In function `gGame::Analysis(float)': 
gGame.cpp:(.text+0xad48): undefined reference to `gRace::Sync(int, int, int)' 
gGame.cpp:(.text+0xad4d): undefined reference to `gRace::Done()' 
gGame.cpp:(.text+0xad61): undefined reference to `gRace::Winner()' 
gGame.cpp:(.text+0xb786): undefined reference to `gRace::End()' 
libtron.a(libtron_a-gWinZone.o): In function `gWinZoneHack::OnEnter(gCycle*, float)': 
gWinZone.cpp:(.text+0x9206): undefined reference to `gRace::ZoneHit(ePlayerNetID*)' 
libtron.a(libtron_a-gWinZone.o): In function `gWinZoneHack::gWinZoneHack(eGrid*, eCoord const&, bool)': 
gWinZone.cpp:(.text+0xda96): undefined reference to `gRace::NewZone(gWinZoneHack*)' 
libtron.a(libtron_a-gWinZone.o): In function `gWinZoneHack::gWinZoneHack(eGrid*, eCoord const&, bool)': 
gWinZone.cpp:(.text+0xdcc6): undefined reference to `gRace::NewZone(gWinZoneHack*)' 
collect2: ld returned 1 exit status 

I를 통해 두 파일의 gRace.h 파일을 포함 해요 :이 처리 할 수없는 원인이 될 수 있습니다 무엇에

#include "gRace.h" 

어떤 아이디어?

+3

'gRace.cpp'가 메이크 파일에 포함되어 있습니까? – casablanca

답변

2

헤더 파일을 포함하지 않으면 정의되지 않은 함수 컴파일러 오류가 발생합니다. 링커 오류는 실제 소스 파일이 다른 파일과 연결되어 있지 않음을 의미합니다 (즉, gRace.h을 올바른 위치에 포함했는지 여부와 상관이 없습니다). 빌드 스크립트를 확인하여 gRace.cpp이 제대로 링크되고 있는지 확인하십시오.

+0

지적 해 주셔서 고맙습니다. 나는 gRace에 대한 링크를 추가하는 것을 완전히 잊었다! 나는 그저 마법 같은 것을 추가 할 것을 기대 했었다고 생각합니다. ... – animuson

0

이 오류는 컴파일 오류가 아니라 링크 오류입니다. 대부분의 경우, 링크해야하는 외부 라이브러리가 누락되었습니다.

1

automake 프로젝트 인 경우 Makefile.am의 _SOURCES 섹션에 gRace.cpp가 없습니다.

+0

+1 Makefile.am을 제안했습니다! – animuson

관련 문제