Duplicate Symbol XCode дублирующая библиотека для той же библиотеки? - PullRequest
5 голосов
/ 26 июля 2010

Есть идеи? Почему компиляция XCode дает такой результат?

ld: duplicate symbol _kJSONDeserializerErrorDomain in 
  /Users/Shared/_BUILDS_/Debug-iphoneos/libLACDLibrary.a(CJSONDeserializer.o) 
  and /Users/Shared/_BUILDS_/Debug-iphoneos/libLACDLibrary.a(CJSONDeserializer.o)

Ответы [ 4 ]

6 голосов
/ 03 октября 2010

Эта ошибка возникает, если вы связываете одну и ту же библиотеку с вашим проектом несколько раз.

Зависимости проекта несколько отличаются от соединения библиотек вместе.Можно иметь несколько проектов, зависящих от одного и того же проекта общей библиотеки X;однако убедитесь, что только один из проектов действительно связывает библиотеку .

6 голосов
/ 05 августа 2010

У меня точно такая же проблема.И это только жалуется на сборку arm6 (не сборку arm7).Я нашел обходной путь: удалите «-all_load» в флаге «Другие компоновщики» в разделе «Сборка» <-Get Info <-Target.Я не уверен, что это правильный обходной путь.Я надеюсь, что кто-то может объяснить дальше и предоставить правильный обходной путь, если это не так. </p>

1 голос
/ 06 августа 2010

Эй, у вас, вероятно, есть дублирующая ссылка в XCode на CJSONDeserializer, поэтому он компилируется и связывается дважды.

0 голосов
/ 04 марта 2012

Я столкнулся с этой проблемой с помощью кода, подобного следующему, в файле с именем Common.h:

void dumpViews(UIView* view, NSString *text, NSString *indent) {
  // ...
}

Добавив static перед определением метода, он решил проблему для меня:

static void dumpViews(UIView* view, NSString *text, NSString *indent) {
  // ...
}
...