zoukankan      html  css  js  c++  java
  • 关于android的mk文件的一些见解

    前几天一直在搞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
    
    #指定要生成动态库文件就是.so
    include $(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)
    

      

  • 相关阅读:
    云笔记项目-Spring事务学习-传播Requried
    云笔记项目-Spring事务学习_测试准备
    云笔记项目-AOP知识简单学习
    云笔记项目-过滤器与拦截器学习
    云笔记项目-Java反射知识学习
    云笔记项目-补充JS面向对象编程基础知识
    云笔记项目-移动笔记后高亮显示笔记本和笔记
    算法-第四版-练习1.3.16解答
    Redis相关的内核参数解释与设置
    算法-第四版-练习1.3.17解答
  • 原文地址:https://www.cnblogs.com/mrblue/p/3108268.html
Copyright © 2011-2022 走看看