【问题标题】:TBXML Linker Error and ARC ErrorTBXML 链接器错误和 ARC 错误
【发布时间】:2013-07-19 17:20:14
【问题描述】:

我正在尝试使用 TBXML 保存一个 XML 文件,我已按照以下步骤使用 TBXML

  1. 在 XCode 4.0 中单击您的项目主文件夹
  2. 点击目标
  3. 打开名为“构建阶段”的选项卡
  4. 打开“将二进制文件与库链接”
  5. 点击“+”找到libz.dylib文件
  6. 将所需文件(TBXML.h、TBXML.m、NSDataAdditions.h、NSDataAdditions.m)复制到我的项目中的组中
  7. 在我要使用库的页面顶部添加了#import "TBXML.h"

在我添加以下行(取自 TBXML 指南)后,它会出现一个错误,如果我使用自动引用计数,我不应该使用保留。

TBXML * tbxml = [[TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www.w3schools.com/XML/note.xml"]] retain];

删除保留后,我最终得到了

TBXML * tbxml = [TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www.w3schools.com/XML/note.xml"]];

当我尝试运行应用程序时,它显示以下错误:

"_OBJC_CLASS_$_TBXML", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386


clang: error: linker command failed with exit code 1 (use -v to see invocation)

我应该怎么做以及如何解决?

谢谢

【问题讨论】:

  • 是否为添加的 .m 文件设置了“目标成员”复选框?

标签: ios objective-c xml linker tbxml


【解决方案1】:

确保您已将文件包含在目标中,即在目标成员选项卡中标记了复选标记

Full screen image

【讨论】:

  • 工作得很好,感谢人们的未来参考在编译器标志中使用“-fno-objc-arc”来禁用 TBXML.m 上的 ARC
【解决方案2】:

此错误意味着链接器找不到已编译的 TBXML 代码 - 很可能是因为它实际上并未被编译。

在导航器中选择 TBXML.m 文件,然后打开右侧的“实用程序”面板并确保在“目标成员”下选中您的目标。

【讨论】:

  • 工作得很好,感谢人们的未来参考在编译器标志中使用“-fno-objc-arc”来禁用 TBXML.m 上的 ARC
猜你喜欢
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 2015-08-04
  • 2012-08-12
  • 2012-06-30
  • 2016-03-31
  • 2010-09-20
相关资源
最近更新 更多