基本结构:
Makefile的定义包括变量定义区、依赖关系区、shell指令区三部分,其中变量类型只有字符串以及空格隔开的字符串,Makefile本质上是一个相对高级的shell脚本编译器,能更简单的使用函数和变量编写shell脚本
基本语法:
'@':执行@后的命令但不在终端打印
'echo':打印命令
':=' :赋值语句
'$(<param>)' :使用param变量
'<生成项> : <依赖项>' :作用域,默认执行第一个
'$@' : 生成项
'$<' : 依赖项第一个
'$^' : 依赖项所有
'.PHONY : <生成项>':使得生成项每次都会重新生成,不考虑历史
'$(dir $@)':生成项目录
'include_path := /path/to/include':添加头文件目录
'library_path := /path/to/lib': 添加库文件目录
'link_librarys := library':包含库文件目录
'rpath := $(foreach item, $(link_librarys),-WL,-rpath=$(item))' :指定运行时链接库目录
'include_path := $(foreach item, $(include_path),-I$(item))':将头文件目录添加-I
'library_path := $(foreach item, $(library_path),-L$(item))':将库文件目录添加-L
'link_librarys := $(foreach item, $(link_librarys),-l$(item))':将库文件名添加-l
参考案例:
learn: 储存相关demo中的MakeFile