博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习笔记 Android.mk 搜索自己主动
阅读量:7239 次
发布时间:2019-06-29

本文共 3552 字,大约阅读时间需要 11 分钟。

最近一直Android.mk这是什么一个令人沮丧的夜晚,点击此处记录。ios你担心更多。不管那么多。xcode自己解决。文本工具:MACVIM(文本编辑工具 很有用 你可以清楚地分辨tab 和Spaces,为了不写.mk错误)件是向编译器描写叙述源码文件。便于它去解析。下面是cocos2dx-3.2新建项目时生成的Android.mk文件基本的语法:“#” 凝视“:=”  赋值“+=”  追加“$”    引用某变量的值#宏函数my-dir返回编译系统提供的当前路径,即Android.mk的文件夹#如(HelloWorld/proj.android/jni/XX)LOCAL_PATH := $(call my-dir)#初始化模块  重置除LOCAL_PATH变量以外的全部变量 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_shared #模块文件名称。唯一(可选) LOCAL_MODULE_FILENAME := libcocos2dcpp
 #把.cpp .c .cc等实现文件的路径赋值给LOCAL_SRC_FILES 我用的是C++版 所以后缀是.cpp 我们新建文件时,须要在这里加入路径。 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 += cocosbuilder_static # LOCAL_WHOLE_STATIC_LIBRARIES += spine_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static #依据编译器提供的变量BUILD_SHARED_LIBRARY生成动态库 include $(BUILD_SHARED_LIBRARY) #导入模块。下面是经常使用的几个模块 $(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)

假设文件少  直接在LOCAL_SRC_FILES这个变量里加入文件的路径就好了
可惜我有几十个文件,一个个加入还不累死。并且难维护。难扩展,易出错。。。

我是个懒人,參考子龙山人的mk改写了一下

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#widcard为扩展通配符#遍历文件夹和子文件夹define walk $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))endef#遍历路径Classes下得文件夹和子文件夹文件,并存入ALLFILES变量中ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)#从ALLFILES文件夹中提取文件,并存入FILE_LIST中#.cc是Linux/Unix下为C++源文件的默认扩展名,与.cpp一个意思#.c 由于我要用到sqlite3.c  FILE_LIST := hellocpp/main.cppFILE_LIST += $(filter %.cpp, $(ALLFILES))FILE_LIST += $(filter %.c, $(ALLFILES))FILE_LIST += $(filter %.cc, $(ALLFILES))#搜索Classes下的子文件夹文件FILE_INCLUDES += $(shell find $(LOCAL_PATH)/../../Classes -type d)#依据搜索到的文件名称 编译资源文件LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)#提供搜索文件的路径LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \	$(FILE_INCLUDES) \#静态库LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static#LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static#LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static#LOCAL_WHOLE_STATIC_LIBRARIES += spine_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static#编译动态库include $(BUILD_SHARED_LIBRARY)#导入静态库相应的模块$(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)

吐槽:这些零碎的东西引擎应该通过软件的开发来解决,或。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
Elide 4.3.1 发布,雅虎开源的应用数据 API 搭建平台
查看>>
[Docker]Docker镜像
查看>>
如何抓取WebClient、HttpWebRequest、WebRequest无法获取的网页源码,下面将为你解答...
查看>>
[HBase]HBase安装
查看>>
微服务 到底解决了什么问题?非用不可吗?
查看>>
基本概念
查看>>
【Web API系列教程】1.2 — Web API 2中的Action Results
查看>>
Memcached的扩容源码分析
查看>>
DOM操作之--元素的创建,添加,删除
查看>>
关于Vue.js和React.js,听听国外的开发者怎么说?
查看>>
4.variables
查看>>
2.sparkSQL--DataFrames与RDDs的相互转换
查看>>
鼠标放上超链接显示背景效果
查看>>
【小摘抄】关于C++11下 string各类用法(持续更新)
查看>>
淘宝Buy+九月上线测试,你说靠谱吗?
查看>>
erlang的函数
查看>>
Spring Boot入门(2)使用MySQL数据库
查看>>
支撑全网70%世界杯流量 盘点世界杯直播背后的阿里云黑科技
查看>>
JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】...
查看>>
直击云栖大会·上海峰会 | 一张图看懂首日重磅发布
查看>>