cocos2dx交叉编译之Android.mk修改

在cocos的交叉编译中,我们或多或少的都需要对android.mk进行一些修改,那么android.mk到底是个用来做什么的文件呢?

首先来看一下在我们创建项目后,android.mk里边到底有些什么。

下边就是创建项目后,android.mkde 的原内容

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,cocos2dx)
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(call import-module,CocosDenshion/android)
$(call import-module,extensions)
$(call import-module,external/Box2D)
$(call import-module,external/chipmunk)
好吧,里边的大部分内容,虽然不明白,但是下边这些,你肯定认识:
LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp

这不就是classes下的helloworld和appdelegate么~ 那这两个文件又是做什么的呢?appdelegate当然是我们在vs中调试运行的入口了。

说到这里,我们再来想一想,android.mk是做什么的。

Android.mk就是用来向编译系统描述源代码所在地的一个文件。


当我们在vs中,编写、调试完毕后,我们的代码当然不可能只有appdelegate和helloworld了。

下边就是一种对android.mk的简单修改,从而可以使我们的项目可以正常编译。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
				   ../../Classes/EnemyBig.cpp \
				   ../../Classes/EnemyMid.cpp \
				   ../../Classes/EnemySmall.cpp \
				   ../../Classes/LayerBullet.cpp \
				   ../../Classes/LayerEnemy.cpp \
				   ../../Classes/LayerGame.cpp \
				   ../../Classes/LayerGround.cpp \
				   ../../Classes/LayerMenu.cpp \
				   ../../Classes/LayerProp.cpp \
				   ../../Classes/LayerUI.cpp \
				   ../../Classes/PlayerPlane.cpp \
				   ../../Classes/SceneGame.cpp \
				   ../../Classes/SceneMenu.cpp \
				   ../../Classes/SceneOver.cpp 
				   
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,cocos2dx)
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(call import-module,CocosDenshion/android)
$(call import-module,extensions)
$(call import-module,external/Box2D)
$(call import-module,external/chipmunk)
看到和原文件有哪些不同了么?

这种方式需要做些简单的操作如下图所示,我们需要把自己的代码,从proj.win32中,移动到Classes中,


然后在android.mk中把自己编写的cpp的路径写入到android.mk,helloworld.cpp哪一行删除即可。



对android.mk修改完毕后,打开cygwin进行交叉编译。看到如下图的内容时,恭喜你,成功了


下边是编译成功的截图


然后就可以导入eclipse了大笑

导入后还有其他问题,详解见另一篇多图文章吐舌头






小弟才疏学浅尴尬,也恳请各位路过的大神多指点,小弟定加努力奋斗




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值