【问题标题】:Assembler Messages: Branch out of range汇编程序消息:分支超出范围
【发布时间】:2014-05-07 08:00:49
【问题描述】:

我正在使用 C++ 在 cocos2d-x 上开发游戏。 我在 xCode 中开发了整个代码。编译,在iphone和ipad上运行,按预期运行。

但是在windows 7 OS中为android编译代码时,使用Cygwin(64位)..我遇到了以下代码..

$ ./build_native.sh
NDK_ROOT = D:\android-ndk-r9
COCOS2DX_ROOT = /cygdrive/d/cocos2d-x-2.2/projects/Totals/proj.android/../../..
APP_ROOT = /cygdrive/d/cocos2d-x-2.2/projects/Totals/proj.android/..
APP_ANDROID_ROOT = /cygdrive/d/cocos2d-x-2.2/projects/Totals/proj.android
Using prebuilt externals

make: Entering directory '/cygdrive/d/cocos2d-x-2.2/projects/Totals/proj.android'
Android NDK: WARNING:/cygdrive/d/cocos2d-x-2.2/projects/Totals/proj.android/../../../cocos2dx/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries
Compile++ thumb  : cocos2dcpp_shared <= AppDelegate.cpp

Compile++ thumb  : cocos2dcpp_shared <= PlayerSelection.cpp

jni/../../Classes/PlayerSelection.cpp: In member function 'void PlayerSelection::update()':
jni/../../Classes/PlayerSelection.cpp:1511:17: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

Compile++ thumb  : cocos2dcpp_shared <= GameScene.cpp
C:\cygwin64\tmp\ccdF8Sjo.s: Assembler messages:
C:\cygwin64\tmp\ccdF8Sjo.s:12180: Error: branch out of range
/cygdrive/d/android-ndk-r9/build/core/build-binary.mk:348: recipe for target 'obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/GameScene.o' failed
make: *** [obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/GameScene.o] Error 1
make: Leaving directory '/cygdrive/d/cocos2d-x-2.2/projects/Totals/proj.android'

在上面的命令行输出中,问题是:

Compile++ thumb  : cocos2dcpp_shared <= GameScene.cpp
C:\cygwin64\tmp\ccdF8Sjo.s: Assembler messages:
C:\cygwin64\tmp\ccdF8Sjo.s:12180: Error: branch out of range

我尝试了以下链接:

Why does branching occur in assembly code while comparing for a number to be in range?

https://in.answers.yahoo.com/question/index?qid=20100603163224AAAGX7J

branch out of range compile error

以上参考资料都对我编译代码没有帮助。

【问题讨论】:

  • 在 GameScene.cpp 中发布代码 - 特别是与 cocos2dcpp_shared 相关的任何内容,如果该名称被代码引用为实际的命名空间、类或方法。也许后续行中提到的“348”表示 GameScene.cpp 中的违规行号,尽管它可以引用 .mk 文件中捕获错误的行。
  • 我知道任何人都需要大量的代码来检查这种类型的BUG...但是如果有人可以给出一个方向或者只是一个提示或一些经验,那么我可以检查一下我自己的代码..?

标签: android c++ android-ndk cygwin cocos2d-x


【解决方案1】:

在逐个检查每个函数与我的代码作斗争后,我发现问题出在嵌套开关盒中,如果有人碰巧遇到这个问题,这可能是它.. 并感谢 LearnCocos2D 的关注。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多