我有一个问题,我有一个基础静态库“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与项目的这种关系。
非常感谢!
答案 0 :(得分:1)
您需要在不包含基本库符号的情况下构建A和B.归档A和B(运行ar)时,请确保不要在其中添加Base的对象文件。您可以使用命令nm验证它,它必须读取基本符号名称旁边的U.
还要确保您的Base库具有“extern”声明。