Makefile - 笔记
Makefile
暴躁的河马
成为一只河马
展开
-
十一、UNIX-LINUX---Makefile笔记二-使用函数(5-6)-if函数-call函数
五、if 函数if 函数$( if <condition>,<then-part> )或$( if <condition>,<then-part>,<else-part> )根据<condition>真或假<then-part>和<else-part>只能执行一个if为假,<e...原创 2019-12-10 16:51:31 · 157 阅读 · 0 评论 -
十、UNIX-LINUX---Makefile笔记二-使用函数(3-4)-文件名操作函数-foreach函数
三、文件名操作函数取目录函数- dir$(dir <names…> )功能:从文件名序列<names>中取出目录部分。目录部分是指最后一个反斜杠“ / ” 之前的部分.如果没有反斜杠,那么返回 “ ./ ”返回:返回文件名序列<names>的目录部分例子# 返回值是 “ src/ ./ ” $(dir src/foo.c hacks )...原创 2019-12-10 16:36:32 · 160 阅读 · 0 评论 -
九、UNIX-LINUX---Makefile笔记二-使用函数(1-2)-函数的调用语法-字符串处理函数
一、函数的调用方法调用函数使用 $( ,,…)或使用 ${ ,,…}函数与参数之间用 “ 空格 ”隔开参数与参数之间用 “ ,0 ”隔开例子 comma :=, # 定义一个, empty := #定义一个空格 space :=$(empty) $(empty)#引用2个空格 foo :=a b c # $(subst 被替换的字串,替换的字串,替换操作作用...原创 2019-12-09 17:15:23 · 89 阅读 · 0 评论 -
八、UNIX-LINUX---Makefile笔记二-使用条件判断(1-2)-示例-语法
一、示例使用 ifeq 、else、endif 来执行满足条件的语句# 定义库的变量 libs_for_gcc = -lgnu normal_libs# 生成的目标 foo : $(objects)# 判断$(CC)是否为gcc ifeq($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc)# $(CC)不是gcc els...原创 2019-12-09 15:42:59 · 99 阅读 · 0 评论 -
七、UNIX-LINUX---Makefile笔记二-使用变量(9-)-模式变量
1.模式变量(Pattern-specific Variable)制定一种“模式”,可以把变量定义在符合这种模式的所有目标上例子 %.o : CFLAGS = -O模式变量的语法和目标变量一样:override 同样是针对于系统环境传入的变量,或是make命令行指定的变量 <pattern..> : <variable-assignment> <...原创 2019-11-30 16:37:25 · 124 阅读 · 0 评论 -
六、UNIX-LINUX---Makefile笔记二-使用变量(7-8)-环境变量-目标变量
1.环境变量并不推荐把许多的变量都定义在环境变量中make -e 可以用系统环境变量覆盖Makefile中定义的变量默认情况下,只有通过命令行设置的变量会被传递2.目标变量可以和全局变量同名,因为它的作用范围只在这条规则以及连带的规则中有效语法# <variable-assignment> : 可以前面讲过的各种赋值表达式# 如“=”,“:=”,“+=”或“?=...原创 2019-11-30 16:29:25 · 117 阅读 · 0 评论 -
五、UNIX-LINUX---Makefile笔记二-使用变量(5-6)-override指示符-多行变量
五、override指示符如果有变量是通常make的命令行参数设置的,那么Makefile中对这个变量的赋值会被忽略如果想在Makefile中设置这类参数的值,可以使用“ override ”指示符# 语法: override <variable> = <value> override <variable> := <value>#追...原创 2019-11-30 15:57:36 · 159 阅读 · 0 评论 -
四、UNIX-LINUX---Makefile笔记二-使用变量(3-4)
使用变量三、变量高级用法第一种 :变量值的替换# 把变量“var” 中所有以“a”字符串“结尾”的“a”替换成“b”字符串 $(var:a = b) 或 ${var:a = b}例子 foo := a.o b.o bar := $(foo:.o = .c) #现在bar = a.b b.c 或者 foo := a.o b.o bar := $(foo:%.o...原创 2019-11-30 13:21:16 · 111 阅读 · 0 评论 -
三、UNIX-LINUX---Makefile笔记二-使用变量(1-2)
使用变量原创 2019-11-29 19:10:06 · 111 阅读 · 0 评论 -
二、UNIX-LINUX---Makefile笔记一(3-4)
3.Makefile的书写规则总述:规则包含 依赖关系 和生成目标的方法 两部分若第一条规则的目标很多个,则第一个目标会成为make最终的目标3.1规则举例foo.o: foo.c defs.h #foo模块 gcc -c -g foo.cfoo.o文件依赖于 foo.c 和 defs.h ,若foo.c 或defs.h文件日期比foo.c 新,或者foo.o 不存在,则依赖关...原创 2019-11-28 18:19:11 · 189 阅读 · 0 评论 -
一、UNIX-LINUX---Makefile笔记一(1-2)
1.Makefile 概要1.1 Makefile 规则make的基本格式目标文件可以是个标签或者伪目标target... : prerequlsites... command目标文件 :依赖文件 make要执行的命令1.2 一个示例试把下列的 .c .h 文件合并输出一个目标文件make : 生成目标文件editmake clean :清除执行文件和所有的中间目标...原创 2019-11-22 21:55:06 · 108 阅读 · 0 评论