(创建于2018/2/11 上午8:12:32)
Makefile文件
//递归展开式,可以引用还没有定义的变量,展开是引用时展开
1 str1=$(str2)
2 str2=hello
//直接展开式,必须引用定义好了的变量,定义之后就会展开
4 str3:=android
5 str4:=$(str3)
6 str5:=$(str1) world
//变量的追加
8 str5 +=,nice to meet you
//自定义函数
10 myfun=$2 $1
//将自定义函数返回值赋给一个变量
11 param=$(call myfun,20,10)
12
13 test:
14 @echo $(str1)
15 @echo $(str4)
16 @echo $(str5)
17 @echo $(param)
//调用自定义函数,call是调用函数的关键字
18 @echo $(call myfun,40,30)
Android.mk
//调用my-dir函数,返回Android.mk文件所在的目录,my-dir是内置函数,将目录赋值给变量LOCAL_PATH,
//放在第一行,地址当前所在目录
LOCAL_PATH := $(call my-dir)
#ffmpeg lib
//include $(CLEAR_VARS) 编译模块时,清空LOCAL_MODULE等参数,每个模块单独编译
//每次编译一个模块时,要清空上一个模块的变量信息,重新设置
include $(CLEAR_VARS)
//模块名称,编译生成后的模块名
LOCAL_MODULE := avcodec
//编译需要的源文件
LOCAL_SRC_FILES := libavcodec-56.so
////include file Makefile可以引入其他的Makefile文件
include $(PREBUILT_SHARED_LIBRARY)
#myapp
include $(CLEAR_VARS)
LOCAL_MODULE := myffmpeg
LOCAL_SRC_FILES := dn_ffmpeg_player.c
##-landroid参数 for native windows
LOCAL_LDLIBS := -llog -landroid -ljnigraphics
//需要的头文件
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/ffmpeg
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include/libyuv
//编译需要的动态库
LOCAL_SHARED_LIBRARIES := avcodec avdevice avfilter avformat avutil postproc swresample swscale libyuv
include $(BUILD_SHARED_LIBRARY)