cocos2d-x在Xcode中移植iOS应用程序时,架构x86_64的未定义符号?

时间:2015-09-28 08:02:04

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

我正在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. 删除i386
  2. 中的项arm64Valid Architectures
  3. Header Search Paths
  4. 中添加所有路径
  5. 已检查Linked Frameworks and libraries
  6. 我正在使用cocos2d-x 2.2.6 cpp。 Xcode版本6.3.2(6D2105)。我使用python脚本来创建这个iOS项目。

2 个答案:

答案 0 :(得分: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更容易)。< / p>

答案 1 :(得分:0)

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

  1. 确保您使用的是Cocos2dx-2.2.6。
  2. 将YES设置为&#34;仅构建活动架构&#34;。
  3. 删除未使用的Lib。引用,即proj.win32,proj.linux,proj.nacl等。
  4. 或者请提交更多代码/日志,以便我们更好地帮助您。