//指定本地路径,通常是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这个动态链接库
**/
android mkdir参数 androidmk文件语法
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
android mk作用 androidmk文件语法
虽然是开发系统的应用,由于工作中很少需要写一个独立的android.mk,即使需要也是参照已有应用中的android.mk去写,稍作修改即可完成,很少去研究Android.mk。最近一段时间有人问到Android.mk文件中一些知识点,让我哑口无言,甚是惭愧,今天来进行系统梳理。
android mk作用 Android.mk解析 Android JAVA java