cocos2d-x环境配置和常见问题

参考
http://www.cocos2d-x.org/projects/cocos2d-x/wiki/How_to_build_and_run_HelloWorld

脚本生成工程

安装目录:
C:\android-ndk-r7
C:\cocos2d-1.0.1-x-0.10.0
C:\cygwin

环境变量:
leoyangnc@leoyangnc-PC~
$ cat env.sh
export NDK_ROOT=/cygdrive/c/android-ndk-r7
export COCOS2DX_ROOT=/cygdrive/c/cocos2d-1.0.1-x-0.10.0
alias ndk-build=/cygdrive/c/android-ndk-r7/ndk-build

leoyangnc@leoyangnc-PC/cygdrive/c/cocos2d-1.0.1-x-0.10.0/HelloWorld/android
$ cat build_native.sh
# set params
#ANDROID_NDK_ROOT=/cygdrive/d/programe/android/ndk/android-ndk-r6b
#COCOS2DX_ROOT=/cygdrive/e/cocos2d-x
ANDROID_NDK_ROOT=/cygdrive/c/android-ndk-r7
COCOS2DX_ROOT=/cygdrive/c/cocos2d-1.0.1-x-0.10.0

编译
leoyangnc@leoyangnc-PC/cygdrive/c/cocos2d-1.0.1-x-0.10.0/HelloWorld/android
$ ./build_native.sh
/cygdrive/c/android-ndk-r7 /cygdrive/c/cocos2d-1.0.1-x-0.10.0/HelloWorld/android
make: Entering directory `/cygdrive/c/cocos2d-1.0.1-x-0.10.0/HelloWorld/android'
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi-v7a/gdbserver
Gdbsetup : libs/armeabi-v7a/gdb.setup
Install : libcocos2d.so => libs/armeabi/libcocos2d.so
Install : libcocosdenshion.so => libs/armeabi/libcocosdenshion.so
Install : libgame_logic.so => libs/armeabi/libgame_logic.so
Install : libhelloworld.so => libs/armeabi/libhelloworld.so
Install : libcocos2d.so => libs/armeabi-v7a/libcocos2d.so
Install : libcocosdenshion.so => libs/armeabi-v7a/libcocosdenshion.so
Install : libgame_logic.so => libs/armeabi-v7a/libgame_logic.so
Install : libhelloworld.so => libs/armeabi-v7a/libhelloworld.so
make: Leaving directory `/cygdrive/c/cocos2d-1.0.1-x-0.10.0/HelloWorld/android'
/cygdrive/c/cocos2d-1.0.1-x-0.10.0/HelloWorld/android
------------------------------------------------------------------------------

cocos2d-x 0.10.0 android 编译后出现错误

android sdk 15,ndk 7,cocos2d-x0.10.0。创建的项目何helloworld都出现这个错误,请教问题原因及解决方案。

Compile++ thumb: cocos2d <= CCGrabber.cpp
jni/../../../cocos2dx/effects/CCGrabber.cpp: In constructor 'cocos2d::CCGrabber::CCGrabber()':
jni/../../../cocos2dx/effects/CCGrabber.cpp:46: error: 'glGenFramebuffersOES' was not declared in this scope
jni/../../../cocos2dx/effects/CCGrabber.cpp: In member function 'void cocos2d::CCGrabber::grab(cocos2d::CCTexture2D*)':
jni/../../../cocos2dx/effects/CCGrabber.cpp:61: error: 'glBindFramebufferOES' was not declared in this scope
jni/../../../cocos2dx/effects/CCGrabber.cpp:65: error: 'glFramebufferTexture2DOES' was not declared in this scope
jni/../../../cocos2dx/effects/CCGrabber.cpp:68: error: 'glCheckFramebufferStatusOES' was not declared in this scope
jni/../../../cocos2dx/effects/CCGrabber.cpp: In member function 'void cocos2d::CCGrabber::beforeRender(cocos2d::CCTexture2D*)':
jni/../../../cocos2dx/effects/CCGrabber.cpp:88: error: 'glBindFramebufferOES' was not declared in this scope
jni/../../../cocos2dx/effects/CCGrabber.cpp: In member function 'void cocos2d::CCGrabber::afterRender(cocos2d::CCTexture2D*)':
jni/../../../cocos2dx/effects/CCGrabber.cpp:113: error: 'glBindFramebufferOES' was not declared in this scope
jni/../../../cocos2dx/effects/CCGrabber.cpp: In destructor 'virtual cocos2d::CCGrabber::~CCGrabber()':
jni/../../../cocos2dx/effects/CCGrabber.cpp:127: error: 'glDeleteFramebuffersOES' was not declared in this scope
make: *** [obj/local/armeabi/objs-debug/cocos2d/effects/CCGrabber.o] Error 1

解决方案
打开 cocos2dx/Android.mk
把下面这行
LOCAL_CFLAGS := -DUSE_FILE32API
改成
LOCAL_CFLAGS := -DUSE_FILE32API -DGL_GLEXT_PROTOTYPES=1
----------------------------------------------------
在使用Android NDK进行编译的时候可能会出现
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
解决方案
Linxu 平台:cd /cygdrive/c/android-ndk-r7/prebuilt/linux-x86/bin/awk
Windows 平台:cd /cygdrive/c/android-ndk-r7/prebuilt/windows/bin/awk
到相关目录下查看,发现真有一个awk执行文件,也就是说ndk默认自带了一个过期的awk工具,删掉它即可(为保险起见可mv重命名),重新ndk-build,成功!
-----------------------------------------------------
创建android工程
参考:
添加到工程之后,包 org.cocos2dx.lib 中的某些java文件会出现 编译错误。
解决方案
到工程属性->Java Compiler->Compiler compliance level: 默认是1.5,把它改为1.6










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值