iOS项目中的库冲突

时间:2013-08-28 14:01:29

标签: ios xcode cocoa-touch core-plot

所以基本上我有两个我觉得彼此冲突的库。我有以下关键“图书馆搜索路径”的设置:

"$(SRCROOT)/projectname/Release-iphone/lib"用于我的某个库,"$(SRCROOT)/projectname"用于另一个库。

我已在我的项目中添加了CorePlot库但要使用它需要以下链接标记-ObjC -all_load

现在,当我添加其中一个或两个时,我收到以下消息,我的项目将无法构建:

duplicate symbol _OBJC_CLASS_$_GTMHTTPFetcher in:
    /Users/user/Library/Developer/Xcode/DerivedData/projectname-chibchblpntaapfagqcohtkixhib/Build/Intermediates/projectname.build/Debug-iphoneos/projectname.build/Objects-normal/armv7/GTMHTTPFetcher.o
    /Users/user/Dropbox/Projectname/projectname/projectname/libGTLTouchStaticLib.a(GTMHTTPFetcher.o)
duplicate symbol _OBJC_METACLASS_$_GTMHTTPFetcher in:
    /Users/user/Library/Developer/Xcode/DerivedData/projectname-chibchblpntaapfagqcohtkixhib/Build/Intermediates/projectname.build/Debug-iphoneos/projectname.build/Objects-normal/armv7/GTMHTTPFetcher.o
    /Users/user/Dropbox/Projectname/projectname/projectname/libGTLTouchStaticLib.a(GTMHTTPFetcher.o)
ld: 176 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

问题最终出现在Google API库libGTLTouchStaticLib.a上,但我不了解链接器标志如何影响它。

2 个答案:

答案 0 :(得分:2)

看起来您的源文件已直接包含在项目中,并且具有指向库的链接。你应该选择其中一个(可能是图书馆)。

答案 1 :(得分:0)

screw -all_load这是一个加载类别的黑客。没有它应该工作