Makefile官⽅中⽂⼿册(⼀)什么是Makefile
shell命令属于什么语言博主学习并翻译了GNU make的官⽅⼿册,去掉了⼀些没⽤的信息。如果是初学者的话,看前⾯⼏章完全⾜够了。
第⼀章 make概述
make命令可以⾃动确定在⼀个⼤型程序项⽬中哪些源⽂件需要被重新编译,并且执⾏相应的编译命令。这部⼿册解释了GNU make命令的⽤法,make是由Richard Stallman 和 Roland McGrath 共同开发的,在3.76版本以后由Paul D. Smith 维护。
我们通过C语⾔程序来举例,因为这是最常见的,但是你可以使⽤make来编译任何编程语⾔编写的程序,只要它所对应的编译器能够通过shell脚本来执⾏。实际上,make命令不仅可以⽤于编程领域,你可以⽤它描述任何需要⾃动更新⽂件、处理⽂件之间依赖关系的任务。
要使⽤make命令,你必须编写⼀个Makefile⽂件,这个⽂件中描述了你的程序⽂件之间的依赖关系,还要提供编译每个⽂件的命令。⼀般来说在⼀个程序中,可执⾏⽂件要依赖于⽬标⽂件(*.o⽂件),⽽⽬标⽂件⼜是由源⽂件编译得到的。
⼀旦编写好了Makefile,每次修改源⽂件之后,仅需执⾏make命令,make会帮你⾃动执⾏必要的重编
译过程。make命令通过你编写的Makefile以及⽂件的最后修改时间来确定哪些⽂件需要更新。对于每⼀个需要更新的⽂件,会执⾏Makefile中相应的shell脚本。
你可以为make提供命令⾏参数来控制应该重新编译哪些⽂件或如何重新编译。参见第9章[如何运⾏make]。
第⼆章 Makefile介绍
你需要编写名为Makefile的⽂件来告诉make命令需要做什么。⼀般来说Makefile应该告诉make命令如何编译和链接⼀个程序。
在这⼀章中,我们讨论⼀个简单的Makefile,它描述了怎样编译和链接有8个C语⾔源⽂件和3个头⽂件的项⽬,这个⼩项⽬实现了“⽂本编辑器”的功能。在Makefile中还告诉make命令如何执⾏⼀些特定的⼯作(⽐如说清理⼯程的操作,可以移除⼀些特定的⽂件)。
当make命令重新编译这个项⽬时,每⼀个被修改过的C源⽂件都需要重新编译,如果有头⽂件被修改了,那么每⼀个包含该头⽂件的C源⽂件需要被重新编译,每⼀个编译过程都会产⽣⽬标⽂件(object file)。最后,只要有⼀个C源⽂件被修改了,那么所有的⽬标⽂件(包括之前编译的和这⼀次重新编译的)都需要重新链接在⼀起从⽽⽣成⼀个新的可执⾏⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。