【问题标题】:Issue setting up GData iOS project设置 GData iOS 项目的问题
【发布时间】:2014-02-24 21:28:03
【问题描述】:

我在为 iPhone 设置 GData 项目时遇到问题。我按照How to use GData in iphone? 帖子中的答案的说明进行操作。该项目编译良好,但如果我尝试运行它会给我一个链接器错误。链接器错误是

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_GDataServiceGoogleYouTube", referenced from:
  objc-class-ref in BWC_ViewController-C85FBF830F43777.o
ld: symbol(s) not found for architecture i386

请看附件截图

谢谢!

【问题讨论】:

  • 您声称该项目编译良好,但您发布的输出清楚地显示了一大堆编译器警告。警告很糟糕。先修复它们。
  • 警告是因为我在构建阶段的编译源中添加了头文件。删除它们,警告现在已修复。但链接器错误仍然存​​在。
  • 请注意,GData API 不是 YouTube 当前的 API。相反,应用应该使用新的基于 JSON 的库,code.google.com/p/google-api-objectivec-client

标签: ios objective-c linker-errors gdata


【解决方案1】:

通常您的错误意味着您在 BWC_ViewController 中使用 GDataServiceGoogleYoutube,而目标中没有 #import "GDataServiceGoogleYoutube" 或一些 GData .m 文件。见以下评论https://stackoverflow.com/a/14148008/2092007

【讨论】:

  • 我的 xcode 项目的目标中缺少 Gdata*.m 文件。它们出现在 GData 项目的目标中。但是,一旦我将它们添加到目标中,我就会看到大约 200 条奇怪的警告消息,例如“警告:没有规则来处理文件 '$(PROJECT_DIR)/TestYoutube/../../../trunk/Source/ Introspection/GData AtomCategoryGroup.m' 类型文件的架构 i386"
【解决方案2】:

是的,我明白了。

此错误是因为 Gdata api 使用非弧,而您的项目使用弧。 为了避免这两个选项存在

  1. 转到项目目标选择 Build Phases 选项卡转到 Compile Sources 找到 GDataServiceGoogleYoutube.m 文件并双击,键入 -fno-objc-arc。

  2. 将您的项目更改为非弧(我建议您执行第一个选项)。

注意:您必须将所有 gdata 类更改为 -fno-objc-arc。

【讨论】:

    【解决方案3】:

    您必须为设备和模拟器创建运行时库。

    在下面的链接中获取详细信息 http://hoishing.wordpress.com/2011/08/23/gdata-objective-c-client-setup-in-xcode-4/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2011-09-19
      • 1970-01-01
      相关资源
      最近更新 更多