【发布时间】: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