Makefile 使用总结(函数查询)

参看:

1、https://www.cnblogs.com/wang_yb/p/3990952.html

2、http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225


Makefile 基本知识:

        = 是最基本的赋值

  := 是覆盖之前的值

  ?= 是如果没有被赋值过就赋予等号后面的值

  += 是添加等号后面的值

  1、“=”

  make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:

   x = foo

        y = $(x) bar

        x = xyz

  在上例中,y的值将会是 xyz bar ,而不是 foo bar 。

  2、“:=”

  “:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。

  x := foo

       y := $(x) bar

       x := xyz

  在上例中,y的值将会是 foo bar ,而不是 xyz bar 了。

二、目录用 : 分隔

三、

LOCAL_SRC_FILES := $(CPP_FILE_LIST:$(LOCAL_PATH)/%=%)

LOCAL_SRC_FILES += $(C_FILE_LIST:$(LOCAL_PATH)/%=%)

$(CPP_FILE_LIST:$(LOCAL_PATH)/%=%) 这个又是一个文本替换技巧。意思是,把CPP_FILE_LIST里面的所有$(LOCAL_PATH)/去掉。之所以有这样的替换是因为LOCAL_SRC_FILES已经包含了LOCAL_PATH,其文件名应该是相对于Android.mk的相对路径。如果SRC_FILES里面还包含LOCAL_PATH的路径那就出错了。同样这也是我们在#1 #2处需要将查找到的文件名中的"./"去除掉的原因。

转自 https://blog.csdn.net/langresser_king/article/details/8275291

LOCAL_SHARED_LIBRARIES 与 LOCAL_LDLIBS,LOCAL_LDFLAGS的区别

https://blog.csdn.net/xdonx/article/details/8330847


Android编译系统入门1:

https://blog.csdn.net/zqlite/article/details/50159109

Android编译系统入门2:

http://www.cnblogs.com/zqlxtt/p/5018956.html

你可能感兴趣的:(Makefile 使用总结(函数查询))