MAKE
我这个人很任性的
这个作者很懒,什么都没留下…
展开
-
MAKE
声明:MAKE系列博客均来自狄泰软件学院本人学习记录原创 2019-10-08 20:23:24 · 158 阅读 · 0 评论 -
1.make 和 makefile
来自狄泰软件学院0.前言无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而...原创 2019-09-22 10:30:10 · 193 阅读 · 0 评论 -
2.初始makeflie的结构
1.makefile 的意义makefile 用于定义源文件间的依赖关系 makefile 说明如何编译各个源文件并生成可执行文件2.makefile 中的元素含义targets通常是需要生成的目标文件名 make 所需执行的命令名称prerequisities当前目标所以依赖的其它目标或文件command完成目标所需要执行的命令3.规则中的注意...原创 2019-10-06 21:53:32 · 151 阅读 · 0 评论 -
3.伪目标的引入
1.makefile中的目标究竟是什么?默认情况下make认为目标对应着一个文件 make会比较目标文件和依赖文件的新旧关系,决定是否执行命令 make以文件处理作为第一优先级2.makefile中的伪目标通过.PHONY关键字声明一个伪目标 伪目标不对应任何实际的文件 不管伪目标的依赖是否更新,命令总是执行3.伪目标的语法先声明,后使用本质:...原创 2019-10-06 22:56:05 · 143 阅读 · 0 评论 -
4.变量和不同的赋值方式
1.基本概念makefile中支持程序设计语言中变量的概念 makefile中的变量只代表文本数据(字符串) makefile中的变量名规则变量名可以包含字符,数字,下划线 不能包含":","#","="," " 变量名大小写敏感2.变量的定义和使用3.赋值方式简单赋值( := ) 程序设计语言中通用的赋值方式 ...原创 2019-10-07 11:50:41 · 209 阅读 · 0 评论 -
5.预定义变量的使用
1.在makefile中存在一些预定义的变量1.自动变量$@ 当前规则中触发命令被执行的目标 $^ 当前规则中的所有依赖 $< 当前规则中的第一个依赖2.注意"$"对于makefile有特殊含义 输出时需要加入一个"$"进行转义 "$@"对于Bash Shell有特殊含义输出时需要加入"\"进行转义3.一些特殊变量的含义$(MAKE) ...原创 2019-10-08 15:21:54 · 247 阅读 · 0 评论 -
6.变量的高级主题
1.变量值的替换使用指定字符(串)替换变量值中的后缀字符(串) 语法格式:$(var:a=b)或${var:a=b} 替换表达式不能有任何的空格 make中支持使用${}对变量进行取值2.变量的模式替换使用%保留变量值中的指定字符,替换其它字符 语法格式:$(var:a%b=x%y)或${var:a%b=x%y}...原创 2019-10-08 20:19:22 · 141 阅读 · 0 评论 -
8.支持条件判断语句
1.makefile中支持条件判断语句可以根据条件的值来决定make的执行 可以比较两个不同变量或者变量和常量值2. 注意事项条件判断语句只能用于控制make实际执行的语句;但是,不能控制规则中命令的执行过程3.条件判断关键字关键字 功能 ifeq 判断参数是否相等,相等为true,否则为false ifneq 判断参数是不否相等,不相等...原创 2019-10-08 21:30:08 · 203 阅读 · 0 评论 -
9.函数定义及调用
1.makefile中支持函数的概念make解释器提供了一系列的函数供makefile调用 在makefile中支持自定义函数实现,并调用执行 通过define关键字实现自定义函数2.自定义函数的语法3.深入理解自定义函数自定义函数是一个多行变量,无法直接调用 自定义函数是一个过程调用,没有任何的返回值 自定义函数用于定义命令集合,并应用于规则中4...原创 2019-10-09 20:13:40 · 432 阅读 · 0 评论 -
10.变量与函数的综合示例
1.实战需求自动生成target文件夹存放可执行文件 自动生成objs文件夹存放编译生成的目标文件(*.o) 支持调试版本的编译选项 考虑代码的扩展性2.工具原料$(wildcard _pattern)获取当前工作目录中满足_pattern的文件或目录列表$(addprefix_prefix, _names)给名字列表_names中的每一个名字增加前缀_pr...原创 2019-10-11 10:45:40 · 318 阅读 · 0 评论