如何在一个iPhone项目中处理多交叉静态库

时间:2009-12-12 12:33:34

标签: iphone xcode static project

我有一个问题,我有一个基础静态库“Base”,然后其他2个库(“A”和“B”)依赖它。那么我有一个项目“P”,我将3个库添加到“P”,我收到一个错误:

ld: duplicate symbol .objc_category_name_NSObject_IMIBase in 

/Users/Travis/Documents/Home/IMI/IMIKit/build/Debug-iphonesimulator/libIMIUI-iphonesimulator.a(IMIBaseNSObjectHelper.o) 和

/Users/Travis/Documents/Home/IMI/IMIKit/build/Debug-iphonesimulator/libIMIData-iphonesimulator.a(IMIBaseNSObjectHelper.o)

那么,我怎样才能处理libs与项目的这种关系。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要在不包含基本库符号的情况下构建A和B.归档A和B(运行ar)时,请确保不要在其中添加Base的对象文件。您可以使用命令nm验证它,它必须读取基本符号名称旁边的U.

还要确保您的Base库具有“extern”声明。