0

我搞不清楚了 。

我以前经常使用 CCScrollLayer,它是一个 cocos2d 类,但现在我遇到了一个奇怪的错误- mach-o-linker

  1. 我已将课程添加到我的项目中(CCScrollLayer.h+m
  2. 我已经进口了它们
  3. 我已经定义: CCScrollLayer *scroller;

然后,当我输入这行代码时:

   scroller = [[CCScrollLayer alloc] initWithLayers:[NSArray arrayWithObjects:page1,page2,nil] widthOffset:100];

我有 mach-o-linker 错误!

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_CCScrollLayer", referenced from:
      objc-class-ref in mainScene.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我在项目设置中定义了 armv6 和 7。

那是什么 ??我知道这不是代码错误,而是有些不同。

4

4 回答 4

0

检查以确保您的编译源中有 CCScrollLayer。如果它不存在,添加它:Target > Build Phases > Compile Sources

于 2012-12-02T23:11:01.817 回答
0

可能您应该将 CCScrollLayer 的实现文件添加到目标的 BuildPhases 中的 CompileSources 中,如果它还没有的话

于 2012-09-08T13:17:15.850 回答
0

它们是否添加到正确的目标中?我不确定,但我认为很多 mach-o-linker 错误都有相同的解决方案。

查看这篇文章:为设备编译时出现 Apple Mach-O 链接器错误

于 2012-09-08T13:18:00.940 回答
0

确保它CCScrollLayer.m列在项目的编译源阶段。

该错误意味着链接器未能在它拥有的所有对象中找到命名类。链接器的任务是构建一个最终的可执行文件,其中所有文件间链接都正确绑定,如果它不能完成其中一个链接,它就会失败。

这样做的常见原因是“忘记”将其中一个编译文件添加为链接器的源文件。由于 Xcode 会根据所有已编译的文件自动执行此操作——您很可能根本忘记将其添加为可编译文件。

于 2012-09-08T13:18:31.953 回答