由于CCScrollLayer类而导致mach-o-linker错误?

时间:2012-09-08 13:14:06

标签: objective-c cocos2d-iphone ccscrolllayer

我迷路了。

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

  1. 我已将课程添加到我的项目(CCScrollLayer.h+m
  2. 我已经导入了它们
  3. 我已定义:CCScrollLayer *scroller;
  4. 然后,当我把这行代码:

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

    我遇到了机器人错误!!!

    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 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

它们是否已添加到正确的目标中?我不确定,但我认为很多机器人 - 链接器错误都有相同的解决方案。

查看此帖子:Apple Mach-O Linker Error when compiling for device

答案 2 :(得分:0)

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

错误意味着链接器无法在其获取的所有对象中找到命名类。链接器的任务是构建一个最终的可执行文件,其中所有文件间链接都正确绑定,如果它无法满足其中一个链接,则会失败。

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

答案 3 :(得分:0)

检查以确保您的编译源中有CCScrollLayer。如果不存在,请添加: 目标>构建阶段>编译来源