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

本文介绍了如何配置cocos2d-x 0.10.0在Android上的开发环境,包括设置_cygbins, _ANDROIDTOOLS和_NDKROOT路径。在完成环境配置后,编译过程中遇到的错误也进行了讨论。" 120182368,8480268,Python模糊字符串匹配利器:FuzzyWuzzy库,"['Python', '自然语言处理', '机器学习', '数据处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

脚本生成工程
  • set _CYGBIN=C:\cygwin\bin 
    The path of cygwin bin
  • set _ANDROIDTOOLS=D:\anroid\android-sdk-windows\tools 
    The path of android sdk tools
  • set _NDKROOT=D:\anroid\android-ndk-r5b
    The root of ndk

安装目录:
C:\cygwin   
cygwin至少需要安装gcc和make工具,最好把vim也装起。

环境变量:
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-x  0.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










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值