目录
一.前文摘要
二.make/Makefile
一.前文摘要
在学习自动化构建工具前我们先来补充一下动静态库的相关指令
动态库指令
gcc -o 文件(重命名) 源文件
静态库指令
gcc -o 文件(重命名) 源文件 -static
二.make/Makefile
怎么形容这个呢~等我们使用后就知道为什么叫自动化了~
首先我们需要创建一个名为Makefile(makefile)且必须是该名字,然后我们vim进入该文件进行编写~
第一行为依赖关系:mybin是我们想要得到的可执行文件的命名,而test.c为源文件~
第二行为依赖方法:就是我们想要达到的目的——得到可执行文件(注意:必须前面tab有4格距离)
编写完成后我们只需要输入make指令~它就会自动帮我们生成可执行文件了~
我们还可以加入clean在里面编写删除文件的操作,这样只需要输入make clean就会帮助我们执行该操作了~
当我们尝试更改顺序后会发现make指令变成了clean操作,而生成可执行文件得用make mybin~
这是因为Makefile在形成文件的时候,默认是从上往下扫描的,所以指令语法上也会对应~
语法补充~
用.PHONY修饰clean后无论是否存在clean这个文件,都会去执行rm语句~
小知识点~
一般默认形成的都是第一个文件且只能生成一个,意味着不能多次make~
只有在重新对源文件作出修改的时候才可以重新使用make~那么我们通过什么来作为make可以使用呢?——通过对比Makefile文件与源文件test.c的修改时间~源文件时间更新说明就修改了~
我们用stat指令获取到了相关的时间,那么这3种时间哪个才是可以比较的时间呢?
Modify显示的是对文件内容作出修改的时间点~
Change显示的是对文件属性作出修改的时间点~
而一般modify都会带动chang的更新,因为文件内容的修改会影响到大小,而大小是属于文件属性的一部分~
Access显示的是访问的时间,(不过不可能实时更新,而是达到一定访问次数更新,节省成本)
而我们比较的时间是Modify,这很合理~