【问题标题】:Cocos2d ARC link error for device but builds for the simulator设备的 Cocos2d ARC 链接错误,但为模拟器构建
【发布时间】:2014-07-25 22:50:24
【问题描述】:

您好,我正在按照本教程为我的 cocos2d 项目启用 ARC

http://www.learn-cocos2d.com/2012/04/enabling-arc-cocos2d-project-howto-stepbystep-tutorialguide/

基本思路是使用cocos2d作为静态库,禁用arc。它可以在模拟器上运行,但在我的 iPhone 5s 上崩溃

  "_OBJC_CLASS_$_CCScaleTo", referenced from:
      objc-class-ref in Helper.o
  "_OBJC_CLASS_$_CCTexture2D", referenced from:
      objc-class-ref in AppDelegate.o
  "_ccGLBlendFunc", referenced from:
      -[SlidingMenuGrid visit] in SlidingMenuGrid.o
  "_OBJC_CLASS_$_CCLayer", referenced from:
      _OBJC_CLASS_$_SlidingMenuGrid in SlidingMenuGrid.o
      _OBJC_CLASS_$_GameScene in GameScene.o
      _OBJC_CLASS_$_LevelScene in LevelScene.o
      _OBJC_CLASS_$_Mask in Mask.o
      _OBJC_CLASS_$_MainScene in MainScene.o
      _OBJC_CLASS_$_ResultScene in ResultScene.o
      _OBJC_CLASS_$_PackScene in PackScene.o
      ...
  "_ccDrawPoints", referenced from:
      -[SlidingMenuGrid visit] in SlidingMenuGrid.o
  "_ccDrawPoint", referenced from:
      -[SlidingMenuGrid visit] in SlidingMenuGrid.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我将 armv7 和 armv7s 用于 cocos2d 库和游戏目标。

【问题讨论】:

  • 这不是崩溃,而是链接器错误。可能与两个目标中不同的构建架构有关。顺便说一句,如果这是一个新项目,您可能应该使用 v3。

标签: objective-c xcode cocoa-touch cocos2d-iphone automatic-ref-counting


【解决方案1】:

假设您拥有包含这些选项的最新版本的 Xcode:

对于您的两个项目,进入每个目标的构建设置并在架构字段中选择“标准架构(armv7,armv7s)”选项。还为 Base SDK 选择了“最新 iOS (iOS 7.0)”。对于 Valid Architectures 字段,至少有“arm64、armv7 和 armv7s”。

如果您有不同的东西,这应该可以解决您缺少 armv7 的问题。如果您最初使用旧版本的 Xcode 创建项目,那么您的游戏/应用程序项目很可能会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2013-07-09
    • 2014-05-30
    • 2013-07-15
    相关资源
    最近更新 更多