初学COCOS2D-X 配置

环境:

COCOS2D-X-2.1.5

python 2.7.5   win7

VS2012 EXPRESS   ECLIPSE

cygwin NDK-R8D


环境搭建:

1.解压COCOS2D-X-2.1.5,打开cocos2d-win32.vc2012.sln,别人说的保存一下,再运行build-win32.bat

2.创建跨平台项目

CMD进入到F:\cocos2d-x\cocos2d-x-2.1.5\tools\project-creator    这里有个create_project.py脚本

python create_project.py -project HelloWorld -package com.kakashijust.helloworld -language cpp

其中HelloWorld为工程名称,com.kakashijust.helloworld为android版本的包名,cpp跨平台语言

创建成功之后在cocos2d-x-2.1.5目录下生成projects目录,里面是生成的各个项目


运行demo:

proj.win32是win32项目,直接点击HelloWorld.sln打开,


发现自动导入了需要的类库,直接运行就ok了


proj.android是android的项目,导入eclipse之前需要编译so文件,

cygwin需要加入NDK_ROOT变量,在proj.android的build_native.sh里要用到

修改F:\cygwin\home\Administrator\.bash_profile,末尾添加

NDK_ROOT=/cygdrive/f/android-ndk-r8d
export NDK_ROOT

NDK_MODULE_PATH已经在proj.android的build_native.sh里定义了,路径之间用:分开
 "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"
cygwin进入到proj.android目录./build_native.sh,第一次编译需要挺长一段时间

编译成功后在proj.android目录下生成libs和obj目录

把proj.android导入到eclipse,copy  F:\cocos2d-x\cocos2d-x-2.1.5\cocos2dx\platform\android\java\src下的java源码到eclipse上,如果还出错的话另建一个android项目吧,把这些资源都copy进来。


进入之前生成的obj文件夹看看 proj.android\obj\local\armeabi


发现是编译时生成的静态库动态库,我们不想每次生成一个新跨平台项目的时候都全部重新编译一次,可以重复利用这些类库

解决方案是在cocos2d-x-2.1.5目录下新建prebuild目录,把proj.android\obj\local\armeabi下(libcocos2dcpp.so就不用了)的类库都copy到prebuild,增加一个类似这样的Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dx_static
LOCAL_MODULE_FILENAME := libcocos2d

LOCAL_SRC_FILES := ./libcocos2d.a

LOCAL_EXPORT_C_INCLUDES := \
$(LOCAL_PATH)/../cocos2dx \
$(LOCAL_PATH)/../cocos2dx/include \
$(LOCAL_PATH)/../cocos2dx/kazmath/include \
$(LOCAL_PATH)/../cocos2dx/platform/android \

#LOCAL_LDLIBS := -lGLESv2 \
#                -llog \
#                -lz

LOCAL_EXPORT_LDLIBS := -lGLESv2 \
                       -llog \
                       -lz


#LOCAL_CFLAGS := -Wno-psabi -DUSE_FILE32API
#LOCAL_EXPORT_CFLAGS := -Wno-psabi -DUSE_FILE32API

LOCAL_WHOLE_STATIC_LIBRARIES := cocos_libpng_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libwebp_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libtiff_static

include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := cocosdenshion_static
LOCAL_MODULE_FILENAME := libcocosdenshion
LOCAL_SRC_FILES := ./libcocosdenshion.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../CocosDenshion/include
#LOCAL_CFLAGS += -Wno-psabi
#LOCAL_EXPORT_CFLAGS += -Wno-psabi
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := box2d_static
LOCAL_MODULE_FILENAME := libbox2d
LOCAL_SRC_FILES := ./libbox2d.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../external
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := chipmunk_static
LOCAL_MODULE_FILENAME := libchipmunk
LOCAL_SRC_FILES := ./libchipmunk.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../external/chipmunk/include/chipmunk
#LOCAL_CFLAGS := -std=c99
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := cocos_extension_static
LOCAL_MODULE_FILENAME := libextension
LOCAL_SRC_FILES := ./libextension.a
LOCAL_EXPORT_C_INCLUDES := \
$(LOCAL_PATH)/../extensions \
$(LOCAL_PATH)/../extensions/CCBReader \
$(LOCAL_PATH)/../extensions/GUI/CCControlExtension \
$(LOCAL_PATH)/../extensions/GUI/CCScrollView \
$(LOCAL_PATH)/../extensions/network \
$(LOCAL_PATH)/../extensions/LocalStorage \
$(LOCAL_PATH)/../extensions/CCArmature
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_curl_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += libwebsockets_static
#LOCAL_CFLAGS += -DCC_ENABLE_CHIPMUNK_INTEGRATION=1
#LOCAL_EXPORT_CFLAGS += -DCC_ENABLE_CHIPMUNK_INTEGRATION=1
#LOCAL_CPPFLAGS += -DCC_ENABLE_CHIPMUNK_INTEGRATION=1
#LOCAL_EXPORT_CPPFLAGS += -DCC_ENABLE_CHIPMUNK_INTEGRATION=1
#LOCAL_CFLAGS := -fexceptions
include $(PREBUILT_STATIC_LIBRARY)


$(call import-module,libjpeg)
$(call import-module,libpng)
$(call import-module,libwebp)
$(call import-module,libtiff)
$(call import-module,libcurl)
$(call import-module,external/libwebsockets/android)


来试一下COCOS2DX自带的demo,F:\cocos2d-x\cocos2d-x-2.1.5\samples\Cpp\TestCpp

TestCpp和pro.android/jni里都有Android.mk,打开修改尾部代码

TestCpp下的Android.mk

#$(call import-module,CocosDenshion/android)
#$(call import-module,external/Box2D)
#$(call import-module,external/chipmunk)
#$(call import-module,cocos2dx)
#$(call import-module,extensions)
$(call import-module,prebuild)
proj.android/jni里的Android.mk

$(call import-module,samples/Cpp/TestCpp)
#$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
#$(call import-module,cocos2dx)
#$(call import-module,CocosDenshion/android)
#$(call import-module,extensions)
#$(call import-module,external/Box2D)
#$(call import-module,external/chipmunk)
$(call import-module,prebuild)

cygwin进入到F:\cocos2d-x\cocos2d-x-2.1.5\samples\Cpp\TestCpp\proj.android

./build_native.sh

发现编译快多了,只是编译了Classes和jni部分,其他都利旧。现在可以导入到eclipse里运行TestCpp了么么哒



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值