在项目中使用两个静态库时,由于在静态库中编译了同名类的冲突

我已经实现了两个具有以下结构的静态库:

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 Project中。

但是在运行应用程序的时候,却抛出了一个错误:

在/User/Library/Developer/Xcode/..E./FirstStaticLibrary.a(BaseClass.o)和/User/Library/Developer/Xcode/..E./SecondStaticLibrary.a(BaseClass.o)中find重复的符号架构i386

请build议一种方法来消除这个错误。

答案是你可能不想听到的,但是你必须在你的一个库中改变它的名字。 假设你有权访问这两个库。

这个答案可能是你会想听到的! 我设法find一个可行的解决scheme! 希望其他人也会知道,即使在他们的框架中包含了其他的API,他们仍然需要在类上放置它们的前缀。 看这里。

Interesting Posts