android.mk文件语法总结

来源:互联网 发布:2017大数据的特征包含 编辑:程序博客网 时间:2024/06/09 00:34
LOCAL_PATH := $(call my-dir) //指定本地路径,通常是android.mk文件所在路径


    include $(CLEAR_VARS) //这两行必须要


    LOCAL_MODULE    := OgreGLES2Sample //指定模块名,会生成libOgreGLES2Sample.so

    LOCAL_MODULE_FILENAME :=OgreGLES2Sample //这样的话,模块名字会变成OgreGLES2Sample.so


    LOCAL_PATH := ./jni //指定了本地路径的值,. 为build.xml文件所在的路径


在本文件中出现的" . "路径都值build.xml文件所在的路径






//下面这个与库文件相关,指定需要哪些库文件,以及库文件所在的路径


    LOCAL_LDLIBS := -landroid -lc -lm -ldl -llog -lEGL -lGLESv2//指定需要哪些附加库文件


    LOCAL_LDLIBS += -L$(LOCAL_PATH)/../../../Ogre/lib/armeabi-v7a \L$(LOCAL_PATH)/../../../Dependencies/lib/armeabi-v7a
 //大写的-L表示附加库路径


    LOCAL_LDLIBS += -lzzip -lz -lFreeImage -lfreetype -lOIS -lmesa -lglsl_optimizer
$(LOCAL_PATH)/../../../Dependencies/lib/armeabi-v7a/libsupc++.a
$(LOCAL_PATH)/../../../Dependencies/lib/armeabi-v7a/libstdc++.a 
./obj/local/armeabi-v7a/libcpufeatures.a


//看看这个居然先指定lib文件,然后指定到哪里去找这些lib文件。
最后面那一行还:“./obj/loc......”,这个 . 表示的是build.xml文件所在的路径。




    LOCAL_STATIC_LIBRARIES := android_native_app_glue cpufeatures


这个指定需要链接的外部静态库。但这个静态库文件到哪里去找呢?
在本工程的./obj目录里面找。

    LOCAL_WHOLE_STATIC_LIBRARIES :=cocos_libpng_static
这个表示后面的是库文件的完整的库名,前面没有lib前缀。 


    LOCAL_SHARED_LIBRARIES
功能同上。




LOCAL_SRC_FILES := Main.cpp //这个指要编译那些文件
注意这里面的当前路径为本mk文件所在的路径。




    $(call import-module,android/cpufeatures) 
    $(call import-module,android/native_app_glue)

import-module:
通过名字找到和include 另外一个模块的 Android.mk,这样就会编译这个mk文件。
“android/cpufeatures”这个目录是在ndk的source文件夹里面,其实是在
NDK_MODULE_PATH环境变量指定的路径里面去寻找。








    LOCAL_EXPORT_CFLAGS //为其他使用本模块的工程定义一些宏,#define XXX=X
    LOCAL_EXPORT_CPPFLAGS
    LOCAL_EXPORT_C_INCLUDES //为其他使用本模块的工程定义一些include头文件
    LOCAL_EXPORT_LDLIBS //为其他使用本模块的工程定义一些要链接的库,相当于为别人定义了
  一些LOCAL_LDLIBS,通常是定义一些系统库。














    include $(BUILD_STATIC_LIBRARY)
    include $(BUILD_SHARED_LIBRARY)
    include $(BUILD_EXECUTABLE)


/////////////////////////////////////////////////////////////////////////////////////////
LOCAL_PATH := $(call my-dir)//标准mk语句,指编译路径,所有mk文件第一句都是这个


/**这个模块表示引用了一个本地的静态库
include $(CLEAR_VARS) //清除各种变量,因为这些变量是静态全局的,如果清除,下次编译时又会用到这些变量造成出错
LOCAL_MODULE    := libopencore-amrnb  //本地静态库模块的名字,这个名字在下面编译jni时需要引用
LOCAL_SRC_FILES := lib/libopencore-amrnb.a //本地静态库文件地址
include $(PREBUILT_STATIC_LIBRARY)  //PREBUILT_STATIC_LIBRARY表示先build一个静态库
**/


/**这个模块表示引用了一个本地的动态链接库
include $(CLEAR_VARS) //同上 www.2cto.com
LOCAL_MODULE    := libswscale  //本地动态库模块的名字
LOCAL_SRC_FILES := lib/libswscale.so //本地动态库文件位置
include $(PREBUILT_SHARED_LIBRARY) //表示先build这个动态链接库
**/
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃药上吐腹泻在3怎么办 房子买了新生儿户口怎么办 吃海鲜拉稀拉水怎么办 吃海鲜腹泻拉水怎么办 两个月宝宝不爱睡觉怎么办 2个月宝宝干呕怎么办 9个月宝宝拉稀的怎么办 宝宝拉肚子快一个月了怎么办 满月宝宝发烧38度怎么办 大人腹泻10天了怎么办 十个月宝贝拉水怎么办 十个月宝宝脱水哭闹怎么办 宝宝肠胃不好老是拉肚子怎么办 七个月的宝宝老是拉肚子怎么办 6个月宝宝拉肚子怎么办 没满月宝宝吐奶怎么办 八个月宝宝有点拉肚子怎么办 4个月宝宝拉水怎么办 2岁宝宝消化不好拉肚子怎么办 两岁宝宝老拉肚子怎么办 2岁宝宝拉肚子老不好怎么办 2岁宝宝一直拉肚子不好怎么办 5天新生儿拉稀水怎么办 4天新生儿拉稀水怎么办 新生儿40天拉稀水怎么办 一周多的宝宝拉肚子怎么办 出生半个月的宝宝拉肚子怎么办 刚出生几天的宝宝拉肚子怎么办 刚出生的宝宝拉肚子怎么办 出生八天的宝宝拉肚子怎么办 刚出生婴儿拉水怎么办 三岁宝宝一直吐怎么办 3岁宝宝一直吐怎么办 5个月宝宝一直吐怎么办 新生儿睡反了觉怎么办 吃母乳奶流量大怎么办 两个月宝宝有痰怎么办 婴儿瞌睡睡倒了怎么办 侧切伤口崩开了怎么办 脐带30天未脱落怎么办 洗眉结痂不掉怎么办