Ошибка повторяющегося символа в сборке Objective-C? - PullRequest
57 голосов
/ 15 февраля 2010

Я получаю эту ошибку, когда нажимаю build + debug:

ld: duplicate symbol .objc_class_name_BlogTableItemCell in /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o and /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

Ответы [ 17 ]

2 голосов
/ 12 августа 2015

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

2 голосов
/ 13 февраля 2015

Добавление еще одной возможной причины в список ... возможно, вы ошибочно создали несколько констант в файле реализации, но вне реализации, с тем же именем.

In HeaderFileOne.m

NSString * const kCoolConstant = @"cool";

In HeaderFileTwo.m

NSString * const kCoolConstant = @"cool";

Таким образом, изменение одного из этих имен констант исправит ошибку компиляции.

2 голосов
/ 22 октября 2013

Это случилось и со мной тоже. В моем случае один (только один) из моих автоматически сгенерированных классов данных был вставлен дважды. Я обнаружил дублирование, посмотрев Фазы сборки ... Исходники компиляции. Простое удаление одного из вхождений решило проблему.

0 голосов
/ 18 декабря 2017

Убедитесь, что вы не импортировали .m файл. Для меня это произошло, я добавил #import "SchoolCommuterHome.m" вместо #import "SchoolCommuterHome.h"

0 голосов
/ 11 февраля 2016

В некоторых случаях я следовал некоторым инструкциям для создания более новой версии Subversion, которая указала мне на создание этой символической ссылки:

ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

Теперь я настоящий парень из Windows, так что это не сразу стало для меня очевидным - но удаление ссылки исправило это для меня (после перезапуска XCode):

rm /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

Уф.

(Фактическая ошибка, которую я получил, была описана здесь: ошибка сборки дублирующихся символов arclite.o )

0 голосов
/ 04 февраля 2016

Один из наших разработчиков оставил там файлы проекта "libSoomla *" дважды. Я удалил дубликаты файлов soomla, пересобрал их и исправил!

Надеюсь, это поможет.

0 голосов
/ 28 сентября 2012

То же самое случилось со мной, когда я играл с локализуемыми xib-файлами, случайно я создал два файла реализации, и, по-видимому, это стало причиной проблемы в моем случае. После удаления / повторного создания файла реализации без повторения этой ошибки ошибка была исправлена.

...