1 дублирующий символ для архитектуры i386

Мне грозит критическая проблема, Xcode вызывает странное исключение при его создании "

дублирующий символ _избирается в:     /Users/mhgaber/Library/Developer/Xcode/DerivedData/ ا Проект-Имя-aopcbghvorqhdwbyudzqsyhtekcu/Build/полупродукты/Project-Name.build/Debug-iphonesimulator/Project-Name.build/Объекты-нормальный/i386/ClassX.o     /Users/mhgaber/Library/Developer/Xcode/DerivedData/Project -Name-aopcbghvorqhdwbyudzqsyhtekcu/Build/Intermediates/Project-Name.build/Debug-iphonesimulator/Project-Name.build/Objects-normal/i386/ClassY.o ld: 1 дублирующий символ для архитектуры i386 clang: ошибка: команда компоновщика не сработала с кодом выхода 1 (используйте -v для вызова вызова)

Я много искал, но я ничего не нашел, чтобы помочь мне.

Ответ 1

Посмотрите как на файлы ClassX, так и на ClassY - Какие цели они включены? В принципе метод _selected дублируется в обоих из них. Я собираюсь угадать, что это простой метод С, который в обоих файлах называется одинаковым. Попробуйте переименовать _selected в один из файлов.

Ответ 2

В моем случае я объявлял const в заголовочном файле, который отлично работал при создании и запуске на устройстве (iPhone 5), однако при попытке имитировать 4S я вдруг получил около 300 "повторяющиеся символы".

Оказывается, мне нужно также отметить const как static, и проблема исчезла. Предположительно, он пытался переопределить константу при каждом обращении к заголовку. Компилятор недостаточно умен, чтобы сделать константы статическими? Не думал, что это будет необходимо, но я думаю, что это так.

const CGFloat kTitleAnimateDistance = 50.f;

Нужно быть:

const static CGFloat kTitleAnimateDistance = 50.f;

Ответ 3

Некоторое время вы случайно импортируете .m файл вместо .h, из-за которого возникает эта ошибка. Проверьте, и если это не причина, выполните следующие шаги.

1- Проверить фазы сборки в настройках цели.

2- Перейдите в раздел источника компиляции.

3- Проверьте, существует ли файл дважды или один раз.

4- Если файл существует, дважды удалите его.

5- Постройте снова.

Ответ 4

У меня была такая же проблема, и ответ @dtrotzjr дал мне подсказку о том, что может вызвать ее.

В моем случае у меня была простая функция C void в моей структуре (которую xcode жаловался как дублирующий символ), и мне нужно было объявить ее как static void