【问题标题】:ios iPhone / iPad - Project with GData static library libGDataTouchStaticLib.a fails on build (duplicate symbol)ios iPhone / iPad - 带有 GData 静态库 libGDataTouchStaticLib.a 的项目在构建时失败(重复符号)
【发布时间】:2012-01-23 14:05:28
【问题描述】:

我正在尝试使用 GData 静态库 libGDataTouchStaticLib.a 构建应用程序 我已经在我的项目设置中进行了所有适当的链接,并将 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 架构 armv7 命令 /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang 失败,退出代码为 1

【问题讨论】:

  • 它也需要一些其他框架/dylibs..
  • 由于缺少框架而出现重复符号错误?...听起来不对...

标签: iphone ios gdata


【解决方案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/,因此此答案假定您具有相同的设置。但是,我使用了一种稍微不同的方式来导入上述博客中的一个 cmets 所建议的标头。

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

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

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

#import "GDataXMLNode.h"

Kelvin 的博客非常感谢他的精彩教程。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2021-09-02
    • 2012-01-12
    • 2013-02-27
    • 2015-01-09
    • 1970-01-01
    相关资源
    最近更新 更多