Проблема с Дублирующимся символом в фазе связи сборки проекта в XCode - PullRequest
0 голосов
/ 29 апреля 2011

Я создаю игровое приложение для iOS. Приложение работало довольно хорошо, но сегодня я провел довольно большую реструктуризацию, чтобы быть немного более «совместимым» с контроллером вида модели.

Я построил основной движок игры на C ++, но использую Objective-C для управления viewControllers, представлениями и т. Д.

Теперь, когда я компилирую проект, я получаю сообщение об ошибке в фазе соединения. Подробности ниже:

ld: дубликат символа ApplicationEngine :: OnFingerUp (Vector2) в /Users/Dan/Library/Developer/Xcode/DerivedData/BlackHoles-exrlidtstxzdtsbyjghgquhlsqul/Build/Intermediates/BlackHoles.build/Doles-bules-bules- normal / i386 / ApplicationEngine.o и /Users/Dan/Library/Developer/Xcode/DerivedData/BlackHoles-exrlidtstxzdtsbyjghgquhlsqul/Build/Intermediates/BlackHoles.build/Debug-iphonesimulator/BlackHatebject.ject для архитектуры i386 collect2: ld вернул 1 статус выхода Команда /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 завершилась неудачно с кодом выхода 1

OnFingerUp - это функция в моем C ++ ApplicationEngine, которая вызывается из viewController.

Может ли проблема быть вызвана путаницей в моем #include / #imports?

Мой файл AppDelegate должен #include файл MainViewController для настройки начального viewController. MainViewController, в свою очередь, включает в себя файл ApplicationEngine для создания экземпляра этого класса. ApplicationEngine содержит метод OnFingerUp. Затем метод OnFingerUp вызывается из MainViewController, когда я получаю сенсорный ввод. Может ли эта последовательность включений вызывать дубликат?

Я заметил, что если я временно полностью удаляю метод OnFingerUp из приложения, то я получаю ту же проблему с другим методом в ApplicationEngine.

Нет ошибок или предупреждений при компиляции отдельных файлов. Я также пытался очистить все и перекомпилировать, но без радости.

У кого-нибудь есть предложения относительно того, как я могу подойти к решению проблемы? Спасибо, Дэн.

1 Ответ

3 голосов
/ 30 апреля 2011

Я могу придумать 3 причины для этого: 1) случайно # в том числе .cpp файл, 2) забыть о защитных элементах #ifndef в заголовочном файле, 3) забыть о встроенном при записи определения метода в заголовочном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...