Ios 在项目中使用两个静态库时,由于在两个静态库中编译的类名相同而导致冲突

Ios 在项目中使用两个静态库时,由于在两个静态库中编译的类名相同而导致冲突,ios,static,static-libraries,conflict,i386,Ios,Static,Static Libraries,Conflict,I386,我实现了两个具有以下结构的静态库: 第一图书馆 基类.h @interface BaseClass -some methods @end @interface BaseClass -some methods; @end 头等舱 @interface FirstDerivcedClass:BaseClass { } -some methods @end @interface SecondDerivedClass:BaseClass { } -someMethods; @end

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

第一图书馆 基类.h

@interface BaseClass

-some methods

@end
@interface BaseClass

-some methods;

@end
头等舱

@interface FirstDerivcedClass:BaseClass
{
}

-some methods

@end
@interface SecondDerivedClass:BaseClass
{
}

-someMethods;

@end
第二图书馆 基类.h

@interface BaseClass

-some methods

@end
@interface BaseClass

-some methods;

@end
第二类

@interface FirstDerivcedClass:BaseClass
{
}

-some methods

@end
@interface SecondDerivedClass:BaseClass
{
}

-someMethods;

@end
上面两个静态库具有公共文件BaseClass.h和BaseClass.m

这些静态库被添加到TestApplication项目中

但在运行应用程序时,它抛出了一个错误:

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


请建议删除此错误的方法。

答案可能是您不想听到的,但您必须更改其中一个库中的名称。假设您可以访问这两个库,也就是说。

这个答案可能是您想要听到的!我设法找到了一个有效的解决方案!希望其他人能够了解到,即使在他们的框架中包含了其他API,他们仍然需要将前缀放在类上。

如果我想在项目和静态库中使用相同名称的文件,这也是不可能的?因为在project和static Library中具有相同名称的文件会出现相同的错误,所以任何地方都不能有重复的文件。项目或静态库。这就是为什么苹果会问你是否想给你的类加前缀来避免这个问题。其中一个需要更改。这与重命名相同