2

我正在尝试编译(制作)游戏源,并且似乎我的 gRace.cpp 文件被排除在外,因为它不断为我的所有 gRace 类方法返回未定义的引用错误。

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

我通过以下方式将 gRace.h 文件包含在两个文件中:

#include "gRace.h"

关于可能导致它不被处理的任何想法?

4

3 回答 3

2

不包括头文件会导致未定义的函数编译器错误。gRace.h这些是链接器错误,这意味着实际的源文件没有与其他文件链接(也就是说,它与您是否包含在正确的位置无关)。检查您的构建脚本以确保gRace.cpp正确链接

于 2010-07-20T06:20:52.263 回答
1

如果它是一个 automake 项目,那么您在 Makefile.am 的 _SOURCES 部分中缺少 gRace.cpp。

于 2010-07-20T06:30:47.803 回答
0

这似乎是链接错误而不是编译错误。最有可能的是,您缺少一些应该链接的外部库。

于 2010-07-20T06:20:38.277 回答