При использовании двух статических библиотек в проекте конфликт из-за класса с одинаковым именем, скомпилированного в обеих статических библиотеках - PullRequest
2 голосов
/ 15 декабря 2011

Я реализовал две статические библиотеки, имеющие следующую структуру:

FirstStaticLibrary.a

BaseClass.h

@interface BaseClass

-some methods

@end

FirstDerivedClass.h

@interface FirstDerivcedClass:BaseClass
{
}

-some methods

@end

SecondStaticLibrary.a

BaseClass.h

@interface BaseClass

-some methods;

@end

SecondDerivedClass.h

@interface SecondDerivedClass:BaseClass
{
}

-someMethods;

@end

Над двумя статическими библиотеками есть общий файл BaseClass.h и BaseClass.m

Эти статические библиотеки добавляются в проект TestApplication.

Но при запуске приложения выдается ошибка:

Дублирующиеся символы находятся в / User /Библиотека / Разработчик / Xcode / .. E./FirstStaticLibrary.a (BaseClass.o) и /User/Library/Developer/Xcode/..E./SecondStaticLibrary.a (BaseClass.o) для архитектуры i386

Пожалуйста, предложите способ устранения этой ошибки.

Ответы [ 2 ]

3 голосов
/ 17 декабря 2011

Ответ, который вы, вероятно, не хотите слышать, но вам придется изменить имя в одной из ваших библиотек.Предполагая, что у вас есть доступ к обеим библиотекам.

1 голос
/ 26 июля 2012

Этот ответ, вероятно, вам захочется услышать!Мне удалось найти решение, которое работает!Надеемся, что другие узнают, что даже когда они включают другие API в свои платформы, им все равно всегда нужно размещать свой префикс в классах. Смотри здесь.

...