手工输入项目需要编译的cpp文件到Android.mk里的缺点

1)繁琐,如果cpp文件很多,简直无法忍受

2)手工输入过程中容易出现错误

3)如果cpp文件更改名称,需要修改Android.mk文件

。。。。等等

下面的样例代码转自:https://gist.github.com/andyque/6060595

[plain] view
plain
copy

  1. <span style="font-family:SimHei;font-size:18px;">LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE := game_shared
  4. LOCAL_MODULE_FILENAME := libgame
  5. #traverse all the directory and subdirectory
  6. define walk
  7. $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
  8. endef
  9. #traverse Classes Directory
  10. ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
  11. FILE_LIST := hellocpp/main.cpp
  12. FILE_LIST += $(filter %.cpp, $(ALLFILES))
  13. FILE_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d)
  14. #source file will be compiled
  15. LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
  16. LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../external/Box2D/ \
  17. $(FILE_INCLUDES) \
  18. LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static box2d_static
  19. include $(BUILD_SHARED_LIBRARY)
  20. $(call import-module,CocosDenshion/android) \
  21. $(call import-module,cocos2dx) \
  22. $(call import-module,extensions) \
  23. $(call import-module,external/Box2D)</span>

Cocos2d-x 避免手工输入项目需要编译的cpp文件到Android.mk里的更多相关文章

  1. windows端ndk 编译.c/cpp文件生成so库示例

  2. android.mk android源码编译

    http://www.cnblogs.com/chenbin7/archive/2013/01/05/2846863.html Android.mk简单分析 2013-01-05 22:51 by . ...

  3. 浅谈独立使用NDK编译库文件(Android)

    阅读前准备 这是一篇相对入门的文章.文中会涉及到少许NDK的知识,但个人认为对初学者来说都相对比较实用,因为都是在平时项目中遇到的(目前自己也是初学者).一些其他高深的技术不再本文探讨范围之内(因为我 ...

  4. Android NDK学习(二):编译脚本语法Android.mk和Application.mk

    一.Android.mk Android.mk分为一下几部分: LOCAL_PATH:= $(call my-dir), 返回当前文件在系统中的路径,Android.mk文件开始时必须定义该变量. i ...

  5. Android.mk各种文件编译汇总

    一.源代码编译 1.1 so预编译 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libAppArea LOCAL ...

  6. android NDK编译(导入).a文件和编译多个so文件(转)

    源:android NDK编译(导入).a文件和编译多个so文件 一.编译一个静态库 libstatic_android.a LOCAL_PATH := $(call my-dir) include ...

  7. android sdk 编译--如何将源代码加入android.jar,以及make原理

    首先是这个问题如何修改. 在/frameworks/base/Android.mk中,找到如下行:packages_to_document :=在该变量的赋值语句最后添加xxxxx (这里是你的包的名 ...

  8. VS Code通过code runner插件编译运行多个cpp文件 | 链接编译.h文件

    1.多个cpp文件在同一级目录 参考:https://jingyan.baidu.com/article/2f9b480d7ceb3d01ca6cc224.html 此时可通过修改Code Runne ...

  9. iOS进阶--将项目的编译速度提高5倍

    前言 作为开发团队的负责人,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60万.现在打包一次耗时需要11~1 ...

随机推荐

  1. API生命周期第二阶段——设计:如何设计API(基于swagger进行说明)

    题外话 在新的项目中,推行了swagger用于对API的设计.以期待解决我们上篇博客中说到了一些现象,提升工作效率.那么,结合到当时和全项目组成员做培训,以及后续的给主要应用者做培训,以及当初自己接触 ...

  2. 正则表达式与python中re模块

    一个网站,正则表达式入门的,很好 http://www.jb51.net/tools/zhengze.html 下面这个包含对python中re的介绍,也是很不错的http://www.w3cscho ...

  3. 【bzoj3751】[NOIP2014]解方程 数论

    题目描述 已知多项式方程: a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). 输入 第一行包含2个整数n.m,每两个整数之间用一个空格隔开 ...

  4. 只用css3实现菜单的toggle效果

    一.原理: 使用label与input来实现,label和复选框是有关联的,label的for属性对应的是input的id,所以点击label时,它就会勾选或取消复选框. 如果我们需要让菜单默认显示, ...

  5. 背包问题--golang的入门解

    . 定义一种 表示静态属性的 关键字 / 修饰符 2. 作用共用.共享 能有此作用的原因分析: Java中,任何变量 / 代码存储时,都是 在编译时 由系统自动分配内存在静态变量编译后,所分配的内存会 ...

  6. leetcode 20 简单括号匹配

    栈的运用 class Solution { public: bool isValid(string s) { stack<char>The_Stack; ; The_Stack.push( ...

  7. FZOJ 2102 Solve equation

                                                                                                        ...

  8. 用jquery写的position瀑布流布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. JAVA特性面试题:

    1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...

  10. IOS-input元素光标偏移乱跑,是什么原因

    这中情况只会出现在一些ios手机上,是兼容性的问题,当然我没有认真的确认过是出现在那些ios系统上的: 之所以出现这种情况,肯定是在input上或TA的父元素上用到了position:fixed; 目 ...