1

我正在 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 开发新手。那么我该如何解决这个问题呢?</p>

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

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

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

4

2 回答 2

1

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

在根项目上:

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

在 cocos2d_libs 项目上:

构建活动架构编号有效架构:armv7、armv7s、i386、x86_64、arm64。

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

于 2015-09-29T14:01:05.617 回答
0

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

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

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

于 2015-10-12T05:21:24.563 回答