【问题标题】:cocos2d-x Undefined symbols for architecture x86_64 when porting iOS app in Xcode?cocos2d-x 在 Xcode 中移植 iOS 应用程序时架构 x86_64 的未定义符号?
【发布时间】:2015-09-28 08:02:03
【问题描述】:

我正在 Xcode 上开发一个 cocos2d-x 项目。我创建了一个场景,但遇到了这个错误:

Undefined symbols for architecture x86_64:
  "MainScene::scene()", referenced from:
      Splash::finishSplash(float) in Splash.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经搜索了很长时间,并看到了很多解决方案。但我仍然对这个错误感到困惑。有时我遇到x86_64 错误,有时遇到i386 错误。我是 iOS 开发新手。那么我该如何解决这个问题呢?

我尝试了以下,但仍然出现错误:

  1. Valid Architectures 中删除项目i386arm64
  2. 添加Header Search Paths中的所有路径
  3. 已检查Linked Frameworks and libraries

我正在使用 cocos2d-x 2.2.6 cpp。 Xcode 版本 6.3.2 (6D2105)。我使用 python 脚本创建了这个 iOS 项目。

【问题讨论】:

  • 嗨,@einveme 你解决了这个问题吗?

标签: ios xcode cocos2d-x cocos2d-x-2.x


【解决方案1】:

我有类似的问题。我使用以下配置(在 cocos2d-x 3.x 上,但在 2.x 上应该相同):

在根项目上:

仅构建活动架构 - 是(调试),否(发布)。 有效架构:armv7、armv7s、i386、x86_64、arm64。

关于 cocos2d_libs 项目:

Build Active Architecture No. 有效架构:armv7、armv7s、i386、x86_64、arm64。

您还应该更新到最新的 Xcode(可能无法很快将 Xcode 6.x 上的应用发送到应用商店)和 cocos2d-x(比 2.x 更容易)。

【讨论】:

    【解决方案2】:

    这是一个 64 位错误。
    Cocos2d-x2.2.6 支持 64 位,因此您不应从架构中删除 arm64。

    1. 确保您使用的是 Cocos2dx-2.2.6。
    2. 将“是”设置为“仅构建活动架构”。
    3. 删除未使用的库。参考即 proj.win32、proj.linux、proj.nacl 等。

    或者请提交更多代码/日志,以便我可以更好地帮助您。

    【讨论】:

      猜你喜欢
      • 2016-11-07
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 2021-03-12
      • 2015-11-24
      相关资源
      最近更新 更多