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

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

ld:中的重复符号_kGDataXMLXPathDefaultNamespacePrefix
/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用于架构armv7
    命令/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang失败,退出代码为1

最佳答案

您不必将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项目以与上述博客相同的方式链接到您的项目中,但不要将标头目录拖到源树中。将这些参数添加到当前目标的“调试和发布标题搜索路径”中:

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


您可以在目标的“构建设置”选项卡下找到它。如果正确设置了GData.xcodeproj文件,则第二个参数会将所有GData标头导入到您的项目中。完成此操作后,您可以通过在相应类的顶部键入以下内容,在需要的地方导入各种GData类,包括GDataXMLNode.h类:

#import "GDataXMLNode.h"


凯尔文(Kelvin)的博客为他撰写了出色的教程,功不可没。希望有帮助!

10-08 15:40