2

ゲーム ソースをコンパイル (作成) しようとしていますが、すべての gRace クラス メソッドに対して未定義の参照エラーが返され続けるため、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

次の方法で、両方のファイルに 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 に答える