关于cocos2dx3.0在eclipse中的一个小编译问题

关于cocos2dx3.0在eclipse中的一个小编译问题,第1张

概述cocos2dx中的c++文件已经添加到jni里面的Android.mk文件中,但是却依然出现问题,之前有同事修改过这个mk文件,循环读取Classes文件夹中的cpp和c文件,内容如下: LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)

cocos2dx中的c++文件已经添加到jni里面的AndroID.mk文件中,但是却依然出现问题,之前有同事修改过这个mk文件,循环读取Classes文件夹中的cpp和c文件,内容如下:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)LOCAL_MODulE := cocos2dcpp_sharedLOCAL_MODulE_filename := libcocos2dcpp# 配置自己的源文件目录和源文件后缀名MY_fileS_PATH  :=  $(LOCAL_PATH) \                   $(LOCAL_PATH)/../../Classes MY_fileS_SUFFIX := %.cpp %.c # 递归遍历目录下的所有的文件rwildcard=$(wildcard ) $(foreach d,$(wildcard *),$(call rwildcard,$d/,))# 获取相应的源文件MY_ALL_fileS := $(foreach src_path,$(MY_fileS_PATH),$(src_path),*.*) ) MY_ALL_fileS := $(MY_ALL_fileS:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)MY_SRC_List  := $(filter $(MY_fileS_SUFFIX),$(MY_ALL_fileS)) MY_SRC_List  := $(MY_SRC_List:$(LOCAL_PATH)/%=%)# 去除字串的重复单词define uniq =  $(eval seen :=)  $(foreach _,,$(if $(filter $_,${seen}),$(eval seen += $_)))  ${seen}endef# 递归遍历获取所有目录MY_ALL_Dirs := $(dir $(foreach src_path,*/) ) )MY_ALL_Dirs := $(call uniq,$(MY_ALL_Dirs))MY_SRC_List := $(filter-out %Classes/main.cpp,$(MY_SRC_List))# 赋值给NDK编译系统LOCAL_SRC_fileS  := $(MY_SRC_List)LOCAL_C_INCLUDES := $(MY_ALL_Dirs)LOCAL_WHolE_STATIC_liBRARIES := cocos2dx_staticLOCAL_WHolE_STATIC_liBRARIES += cocosdenshion_staticLOCAL_WHolE_STATIC_liBRARIES += Box2d_static# LOCAL_WHolE_STATIC_liBRARIES += cocosbuilder_static# LOCAL_WHolE_STATIC_liBRARIES += spine_static# LOCAL_WHolE_STATIC_liBRARIES += cocostudio_staticLOCAL_WHolE_STATIC_liBRARIES += cocos_network_staticLOCAL_WHolE_STATIC_liBRARIES += cocos_extension_staticLOCAL_WHolE_STATIC_liBRARIES += cocos2dx-talkingdatainclude $(BUILD_SHARED_liBRARY)define add_shared_lib	include $(CLEAR_VARS)	LOCAL_MODulE := 	LOCAL_MODulE_filename := 	LOCAL_SRC_fileS := $(TARGET_ARCH_ABI)/.so	include $(PREBUILT_SHARED_liBRARY)endefshared_lib_names := libbdpush_V2_0 \					libBaIDuMapSDK_v2_3_1 \					libGif \					liblocSDK4 \					libTeaCrypt$(foreach item,$(shared_lib_names),$(eval $(call add_shared_lib,$(item))))$(call import-module,.)$(call import-module,audio/androID)$(call import-module,Box2D)# $(call import-module,editor-support/cocosbuilder)# $(call import-module,editor-support/spine)# $(call import-module,editor-support/cocostudio)$(call import-module,network)$(call import-module,extensions)#$(call import-module,proj.androID/jni)

我为了方便直接添加

<pre name="code" ># 赋值给NDK编译系统LOCAL_SRC_fileS  := $(MY_SRC_List) \
<span >		</span>    $(LOCAL_PATH)/../../ShareSDK/C2DXShareSDK/AndroID/C2DXShareSDK.cpp \
<span >		</span>    ...等等
LOCAL_C_INCLUDES := $(MY_ALL_Dirs) \
<pre name="code" ><span >		</span>    $(LOCAL_PATH)/../../ShareSDK/C2DXShareSDK/AndroID \
<span >		</span>    ...等等
 
 结果还是无法找到定义C2DXSshareSDK中的各种函数定义,很明显是没有编译该文件,最后改变为   
# 赋值给NDK编译系统
<pre name="code" >MY_SRC_List += <span >../../ShareSDK/C2DXShareSDK/AndroID/C2DXShareSDK.cpp </span>
<pre name="code" ><span >MY_SRC_List += ...等等</span>
<span ></span>
<span ></span><pre name="code" >MY_ALL_Dirs += <span >$(LOCAL_PATH)/../../ShareSDK/C2DXShareSDK/AndroID</span>
 
 
 
<pre name="code" >MY_ALL_Dirs += ...等等
LOCAL_SRC_fileS := $(MY_SRC_List)LOCAL_C_INCLUDES := $(MY_ALL_Dirs) 
 

还是编译出错,不过错误不同了,显示vector,std找不到,这个时候我把调用他的文件中添加上

include "cocos2d.h" using namespace std;using namespace cocos2d;

好了,编译成功,总结一下androID使用ndk只要是c/c++文件出错的,多半编译错误在jni里面的AndroID.mk文件中。

还有androID使用Cocos2dx,记得添加cocos的java的src文件,可以右键选择项目,选择Build Path->link Source,然后自定义一个名字,把需要的文件夹添加进去,cocos2dx的java目录是...\cocos2d\cocos\platform\androID\java\src,当然也可以用其他比如import方式直接选择import->AndroID->Existing AndroID Code Into Workspace,选择cocos2dx3.0以上版本直接选择项目中的\cocos文件夹即可。

总结

以上是内存溢出为你收集整理的关于cocos2dx3.0在eclipse中的一个小编译问题全部内容,希望文章能够帮你解决关于cocos2dx3.0在eclipse中的一个小编译问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存