Cocos2d iphone Cocos2D,CCMenuAdvanced实现错误:"_OBJC“高级课程”;链接器命令失败,退出代码为1

Cocos2d iphone Cocos2D,CCMenuAdvanced实现错误:"_OBJC“高级课程”;链接器命令失败,退出代码为1,cocos2d-iphone,clang,xcode4.5,Cocos2d Iphone,Clang,Xcode4.5,嗯。我正在启动一个新的Cocos2D模板,试图弄清楚CCMenuAdvanced到底是如何工作的。从没有物理的CoCoS2D2.1 b2项目开始,将CCMenuAdvanced.h和CCMenuAdvanced.m文件添加到我的项目中,从HelloWorldLayer.m init方法中删除样板代码,一切正常。黑屏。在我看来,我应该导入所有的库,当我输入任何与CCMenuAdvance有关的内容时,它会自动完成,因此看起来工作正常。以下是我在HelloWorldLayer init方法中的全部内

嗯。我正在启动一个新的Cocos2D模板,试图弄清楚CCMenuAdvanced到底是如何工作的。从没有物理的CoCoS2D2.1 b2项目开始,将CCMenuAdvanced.h和CCMenuAdvanced.m文件添加到我的项目中,从HelloWorldLayer.m init方法中删除样板代码,一切正常。黑屏。在我看来,我应该导入所有的库,当我输入任何与CCMenuAdvance有关的内容时,它会自动完成,因此看起来工作正常。以下是我在HelloWorldLayer init方法中的全部内容:

CCMenuItemImage *scrollableSprite = [CCMenuItemImage itemWithNormalImage:@"640x2272ScrollableImage.png"
                                                    selectedImage:@"640x2272ScrollableImage.png"
                                                           target:self
                                                         selector:@selector(iDunnoYet)];
正如预期的那样,它编译并运行时带有未使用的变量“sprite”警告,但运行正常。一旦我将这一行代码添加到项目中,希望得到另一个未使用的变量错误(菜单):

我得到这个错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_CCMenuAdvanced", referenced from:
      objc-class-ref in HelloWorldLayer.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已经注释掉了这一行,它构建和运行都很好。我读过两个可能引发此错误的不同内容:1)我在项目中导入了两次文件或库,2)我没有在构建设置中正确包含必要的库。首先,我检查了我的标题,它们看起来很好。我只在HelloWorldLayer.h文件中导入了CCMenuAdvanced.h文件。第二,它是一个Cocos2D模板,没有上面提到的代码行就可以很好地工作,所以我认为应该已经包括了所有必要的库


无论如何,如果有人能给我指出正确的方向,我将不胜感激。提前谢谢。当然,如果需要,我可以提供更多的代码。

验证CCMenuAdvanced.m是否已添加到项目目标中。选择文件,打开“实用程序”视图并查看文件的目标成员资格。文件旁边应该有一个复选框。像这样:


是的。。。史蒂芬,你是最棒的。如果这个应用程序被Zynga以数百万美元的价格收购,正如我完全期待的那样……你将获得一笔巨额捐款。:)非常感谢你!即使我看不到你发布的图像,不管我在哪个浏览器中尝试。嗯,再次感谢。但如果Zynga只是复制你的游戏,然后继续赚数百万呢?:)希望到那时我至少能赚几百万但是,如果不是!我会给你买个漂亮的礼品篮什么的。然后起诉Zynga,希望达成数百万美元的和解。
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_CCMenuAdvanced", referenced from:
      objc-class-ref in HelloWorldLayer.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)