ios iPhone / iPad - 带有GData静态库的项目libGDataTouchStaticLib.a在构建时失败(重复符号)

时间:2012-01-23 14:05:29

标签: iphone ios gdata

我正在尝试使用GData静态库libGDataTouchStaticLib.a构建一个App 我已在项目设置中进行了所有适当的链接,并将GDataXMLNode.h和GDataXMLNode.m复制到我的项目中。

我收到以下错误。有人能帮我理解这是什么吗?

ld:重复符号_kGDataXMLXPathDefaultNamespacePrefix in /Users/myUser/Library/Developer/Xcode/DerivedData/GData-edmqtrniowvhfjgfgngtlfxttvri/Build/Products/Debug-iphoneos/libGDataTouchStaticLib.a(GDataXMLNode.o)和 /Users/myUser/Library/Developer/Xcode/DerivedData/MyApp-grzimbvctfmwhmdluxbuxmskcvzy/Build/Intermediates/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/GDataXMLNode.o for architecture armv7     命令/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang失败,退出代码为1

1 个答案:

答案 0 :(得分:2)

您不必将GDataXMLNode.h和GDataXMLNode.m复制到您的项目中。我相信你得到重复符号错误的原因是因为libGDataTouchStaticLib.a库已经包含已编译的GDataXMLNode.m类。

我目前正在使用我正在处理的项目中的GData库,并使用这些说明设置它:http://hoishing.wordpress.com/2011/08/23/gdata-objective-c-client-setup-in-xcode-4/,所以这个答案假定您具有相同的设置。但是,我使用了稍微不同的导入标题的方式,这些标题是上述博客中的一条评论所建议的。

在您的Xcode项目中删除GDataXMLNode.h和GDataXMLNode.m文件,并确保GData.xcodeproj项目以与上述博客相同的方式链接到您的项目中,但不要将headers目录拖到源树中。将这些参数添加到当前目标的Debug和Release Header Search Paths中:

/usr/include/libxml2
${BUILT_PRODUCTS_DIR}/Headers

您可以在目标的Build Settings选项卡下找到它。如果您正确设置了GData.xcodeproj文件,则第二个参数会将所有GData标头导入到项目中。一旦你完成了这个,你应该能够通过在相应的类的顶部键入它来导入各种GData类,包括GDataXMLNode.h类,只要你需要它:

#import "GDataXMLNode.h"

Kelvin的博客非常值得赞赏他的精彩教程。希望有所帮助!