Почему мой файл .cpp не обрабатывается? - PullRequest
2 голосов
/ 20 июля 2010

Я пытаюсь скомпилировать (сделать) исходный код игры, и кажется, что мой файл 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"

Любые идеи о том, что может быть причиной того, что он не обрабатывается?

Ответы [ 3 ]

2 голосов
/ 20 июля 2010

Если не включить файл заголовка, это может привести к неопределенным ошибкам компилятора функции. Это ошибки компоновщика, что означает, что фактический исходный файл не связан с другими файлами (то есть он не имеет никакого отношения к тому, включили ли вы gRace.h в нужных местах). Проверьте скрипт сборки, чтобы убедиться, что gRace.cpp правильно связан с

1 голос
/ 20 июля 2010

Если это автоматический проект, вам не хватает gRace.cpp в вашем разделе _SOURCES в Makefile.am.

0 голосов
/ 20 июля 2010

Это считается ошибкой компоновки, а не ошибкой компиляции. Скорее всего, вам не хватает некоторых внешних библиотек, с которыми вы должны ссылаться.

...