
Make
文章平均质量分 51
随心小记
这个作者很懒,什么都没留下…
展开
-
Make(1)
make是一个应用程序 - 解析源程序之间的依赖关系 - 根据依赖关系自动维护编译工作 - 执行宿主操作系统中的各种命令makefile是一个描述文件 - 定义一系列的规则来指定源文件编译的先后顺序 - 拥有特定的语法规则,支持函数定义和函数调用 - 能够直接集成操作系统中的各种命令makefile中的描述用于指导make程序如何完成工作;原创 2017-05-31 19:34:34 · 387 阅读 · 0 评论 -
make(5)
变量值的替换 使用指定字符(串)替换变量值中的后缀字符(串)$(var:a=b)或${var:a=b} 替换表达式中不能有任何的空格 make中支持使用${}对变量取值src := a.cc b.cc c.ccobj := $(src:cc=o)test : @echo "obj => $(obj)"变量的模式替换 - 使用%保留变量值的指定字符,转载 2017-06-03 09:34:51 · 832 阅读 · 0 评论 -
make(4)
预定义变量自动变量$@ 当前规则中促发命令被执行的目标$^ 当前规则中的所有依赖$< 当前规则中的第一个依赖all : first second third @echo "\$$@ => $@" @echo "$$^ => $^" @echo "$$< => $<"注意: “$”对于makefile有特殊含义输出时需要加上一个"$" 进行转义转载 2017-06-02 21:24:23 · 498 阅读 · 0 评论 -
make(9)
实战需求:自动生成target文件夹存放可执行文件自动生成objs文件夹存放编译生成的目标文件(*.o)支持调试版本的编译选项考虑代码的扩展性工具$(wildcard _pattern) 获取当前工作目录中满足_pattern的文件或者目录列表$(addprefix _prefix,_names) 给名字列表_names中的每一个名字增加前缀_prefix关键技巧自动获取当前目转载 2017-06-18 10:51:32 · 201 阅读 · 0 评论 -
make(8)
makefile中支持函数的概念make解释器提供了一系列的函数供makefile调用在makefile中支持自定义函数,并调用执行通过define关键字实现自定义函数函数定义define func1 @echo "My name is $(0)"endefdefine func2 @echo "My name is $(0)" @echo "Param => $(转载 2017-06-17 23:17:44 · 299 阅读 · 0 评论 -
make(7)
条件判断语句可以根据条件的值决定make 的执行可以比较两个不同变量或者变量和常量值if xxx (arg1,arg2)# for tureelse#for falseendif注意:条件判断语句只能用于控制make实际执行的语句;但是不能控制规则中命令的执行过程常用形式:ifxxx (arg1,arg2)其他形式ifxxx "arg1" "arg2"ifxxx 'arg1' 'ar转载 2017-06-17 18:59:40 · 338 阅读 · 0 评论 -
make(3)
变量和不同的赋值方式 - makefile中的变量只代表文本数据(字符串)变量名规则 - 变量名可以包含字符,数字,下划线 - 不能包含”:”, “#”, “=”或” ” - 变量名大小写敏感变量定义CC := gccTARGET := hello.out变量使用$(TARGET) : func.o main.o $(CC) -o $(TARGET转载 2017-06-01 20:29:57 · 286 阅读 · 0 评论 -
伪目标
makefile中的伪目标 - 通过.PHONY关键字声明一个伪目标 - 伪目标不对应任何实际的文件 - 不管伪目标的依赖是否更新,命令总是执行语法:先声明,后使用.PHONY:clean##注释##clean: rm *.o hello.out妙用:规则调用.PHONY: clean rebuild all## other rules ##rebu转载 2017-05-31 22:53:41 · 322 阅读 · 0 评论 -
Make(2)
makefile的意义 - makefile用于定义源文件间的依赖关系 - makefile说明如何编译各个源文件并生成可执行文件依赖的定义: targets : prerequisites ; ( ‘\t’ ) command1makefile中的元素定义 - targets(可以包含多个目标,使用空格对多个目标名进行分隔) -转载 2017-05-31 22:08:58 · 672 阅读 · 0 评论 -
make(6)
环境变量(全局变量)makefile中能够直接使用环境变量的值 定义了同名变量,环境变量将被覆盖运行make时指定“-e”选项,优先使用环境变量为什么要在makefile中使用环境变量?环境变量可以在所有makefile中使用过多的依赖环境变量会导致移植性降低 变量在不同makefile之间的传递方式定义make命令行变量进行传递(推荐)使用export定义变量进行传递(定义临时环转载 2017-06-03 15:42:14 · 296 阅读 · 0 评论