网站关键词优化原理,WordPress 收款方案,wordpress原图对比插件,宁夏建设工程造价信息网本期博客我们的任务就是搞懂自动化构建工具——make/Makefile一、什么是make/Makefile#x1f4cc;make是一个命令工具#xff0c;是一个解释makefile中指令的命令工具#xff0c;一般来说#xff0c;大多数的IDE都有这个命令#xff0c;比如#xff1a;Delphi的makemake是一个命令工具是一个解释makefile中指令的命令工具一般来说大多数的IDE都有这个命令比如Delphi的makeVisual C的nmakeLinux下GNU的make。可见makefile都成为了一种在工程方面的编译方法。makefile是一个文件和make指令搭配使用可以完成项目自动化构建。会会不会写makefile从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数其按类型、功能、模块分别放在若干个目录中makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂的功能操作makefile带来的好处就是——“自动化编译”一旦写好只需要一个make命令整个工程完全自动编译极大的提高了软件开发的效率。二、make/Makefile的使用我们要想使用好这个自动化构建工具首先得要有一个文件名为Makefilemakefile的文件有了这个Makefile文件后我们可以在Makefile文件中编写其中的依赖关系和依赖方法最后在我们使用make指令时系统会自动查看Makefile文件中的内容进行自动化操作。下面是使用make/Makefile的实际举例第一步touch一个Makefile这里不必多说直接touch第二步编写Makefilemake指令所要进行的操作都是从Makefile文件中读取的编写好Makefile文件是重中之重Makefile文件的内容主要包含两个部分依赖关系和依赖方法依赖关系依赖关系是指一个文件和另一个文件的关系用:来表示,冒号两边由两个文件名构成意思是前一个文件来源于后一个文件当然当前一个文件没有来源文件时冒号后面也可以不写具体操作为目标文件名 : 来源文件名我们来举个栗子我们来看到这四个依赖关系由上至下分别表示的是text.exe文件源于text.o文件、text.o文件源于text.s文件、text.s文件源于text.i文件、text.i文件是最终依赖没有来源文件。依赖方法有依赖关系我们可以知道两个文件是有关联的那它们具体是怎么依赖的呢在这里依赖方法就起了重要作用由一段指令来解释两个文件之间是怎么依赖的依赖方法具体写法为在相对应的依赖关系下空一段tap的距离然后用指令来表示两个文件的形成关系例如上面的每个依赖关系下面都标明了依赖方法从上到下意思依次为text.exe文件源于text.o文件具体指令为gcc -o test.exe test.otext.o文件源于text.s文件具体指令为gcc -c -o test.o test.stext.s文件源于text.i文件具体指令为gcc -S -o test.s test.itext.i文件具体指令为gcc -E -o test.i test.c第三步make一下最后我们只需要输入make指令系统会自动查看Makefile文件中的内容进行自动化操作例如我们上面编写的Makefile文件make指令会先找到第一个依赖关系第一个依赖关系依赖第二个依赖关系所以找到第二个依赖关系而第二个依赖关系依赖第三个依赖关系所以找到第三个依赖关系而第三个依赖关系依赖第四个依赖关系所以找到第四个依赖关系最后第四个依赖关系没有依赖文件所以开始依次执行第四个依赖方法、第三个依赖方法、第三个依赖方法········ 一直到第一个依赖关系的依赖方法执行完毕。这可以看到make指令读Makefile文件时用到了栈的原理先进后出三、多个依赖关系下make指令执行原理上述例子虽然有多个依赖关系但是每个依赖关系都与下一个依赖关系有联系所以执行时可以将其看成一个整体相当于一条依赖关系现在我们再加一条与上面没有任何联系的依赖关系clean那我们该怎么单独执行clean依赖关系的指令呢将make指令后加上想要执行的依赖关系即可那我们在上一个例子make后面没有加上任何依赖关系为什么还可以执行呢这是因为make指令在后面没有任何依赖关系时默认执行第一条依赖关系四、 .PHONY在我们make之后继续执行make指令可以发现系统提示已经是最新的了不会再去执行一遍但是.PHONY可以让指定的依赖关系总是被执行在.PHONY后面加上指定的依赖关系我们发现我们每输入一遍不管之前是否被执行过都会再执行一遍。本期博客到这里就结束了我们下一期见~