1、编译成android时,需要修改jni/android.mk,每个cpp都修改一下太麻烦,可以让他自动识别。
# 遍历目录及子目录的函数
define walk
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
endef
# 遍历Classes目录
ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
FILE_LIST := hellocpp/main.cpp \
hellocpp/test.cpp
# 从所有文件中提取出所有.cpp文件
FILE_LIST += $(filter %.cpp, $(ALLFILES))
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
2、经常会遇到无法解析的外部命令。看报错来查是少了什么库。
用CCHttpRequest会遇到CURL、sockets、libExtensions缺失的情况。在VC里面要导入库:
1、项目-添加现有项目。导入cocos/network和extension两个项目
2、右键引用-添加引用把刚才两个项目导进来,附加包含目录里要加一个$(EngineRoot)
3、然后运行会发现缺失CURL等东西,这个时候还要导入lib包。右键属性-链接器-输入-附加依赖项加入这两个lib
$(EngineRoot)external\curl\prebuilt\win32\libcurl_imp.lib
$(EngineRoot)external\websockets\prebuilt\win32\websockets.lib
这样VS里面运行项目就可以跑起来了,不过编译安卓还需要在android.mk配置:
LOCAL_WHOLE_STATIC_LIBRARIES
+= cocos_extension_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static
$(call import-module,extensions)
$(call import-module,network)
$(call import-module,curl/prebuilt/android)
$(call import-module,websockets/prebuilt/android)