前几天一直在搞android平台的编译的问题。google不给我们c++程序员提供一个便捷的开发环境,真是让我痛心疾首。

分两部分说,第一部分是生成动态库(.so)的mk文件,另一部分时说module(module是android提供的很有意思并且也很用的一个东西)的mk文件。

下面直接拿cocos2d-x里的helloworld当实例,咱一句一句的给你解释,这个文件在proj.android/jni/Android.mk

#my-dir由编译系统提供,这句话的目的是把LOCAL_PATH这个宏设置为这个mk文件所在的位置LOCAL_PATH := $(call my-dir)#CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量include $(CLEAR_VARS)#模块的名字,这个供其他mk文件依赖LOCAL_MODULE := hellocpp_shared#指定生成libhellocpp.so(为什么是.so是以为下面指定这个要生成动态库)LOCAL_MODULE_FILENAME := libhellocpp#设置要被编译的源代码文件,  \换行符号,LOCAL_SRC_FILES := hellocpp/main.cpp \                   ../../Classes/AppDelegate.cpp \                   ../../Classes/HelloWorldScene.cpp \#设置头文件包含目录 :=是值等,+=是追加LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes#依赖的静态库名称,这个库哪里的,请看最后一行LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static#指定要生成动态库文件就是.soinclude $(BUILD_SHARED_LIBRARY)#需要依赖这个module,cocos2dx实际上是个相对COCOS2DX_ROOT的目录$(call import-module,cocos2dx)

  

下来说下module,咱用extensions/Android.mk做例子

其他的基本都一样就这两句

#这个表示要导出的包含目录LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) \                           $(LOCAL_PATH)/CCBReader \                           $(LOCAL_PATH)/GUI/CCControlExtension \                           $(LOCAL_PATH)/GUI/CCScrollView \                           $(LOCAL_PATH)/network \                           $(LOCAL_PATH)/LocalStorage #这个表示要编译成静态库文件,并且这个一定要放在 LOCAL_EXPORT_C_INCLUDES后面,否则上面的目录不能正常导出                   include $(BUILD_STATIC_LIBRARY)

  

更多相关文章

  1. Android(安卓)Studio Drawable和Mipmap文件夹的区别
  2. windows系统上安装配置使用Android(安卓)NDK r5
  3. Android之自定义各种控件
  4. Android性能优化之一:ViewStub(转)
  5. 创建一门新的编程语言-Flex&Bison&LLVM-(6)-LLVM在Android和PC上的
  6. 【Android(安卓)FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视
  7. android应用程序项目结构-02
  8. 给android添加busybox
  9. Android中的数据存储之文件存储、SharedPreferences和Pull解析

随机推荐

  1. Android关键概念
  2. Unity3D 调用Android原生方法
  3. Android:动画效果translate、scale、alph
  4. 转 : Android中Message机制的灵活应用
  5. Android Audio System 之二:AudioFlinger
  6. Android Error: Conversion to Dalvik fo
  7. Android知识储备
  8. Android的一些网上开发资源链接地址
  9. Android实践项目汇报(一)
  10. 第一章 JAVA入门(Android安全模型)