Linux项目自动化构建工具-make/Makefile

Posted xiao zhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux项目自动化构建工具-make/Makefile相关的知识,希望对你有一定的参考价值。

Makefile是什么

makefile其实就是一个文档,里面定义了一系列的规则指定文件的编译生成顺序,它记录了原始码如何编译的详细信息。 makefile写好,只需要一个make命令,整个工程就可以完全自动编译,极大的提高了软件开发的效率。Makefile带来的最大好处就是“自动化编译”,Makefile文件完成后,不需要冗杂的指令进行编译,一个make指令即可完成。

make是什么

make是一个解释makefile中指令的命令工具。它可以简化编译过程里面所下达的指令,当执行 make 时,make 会在当前的目录下搜寻 Makefile (or makefile) 这个文本文件,执行对应的操作。make 会自动的判别原始码是否经过变动了,而自动更新执行档。
总的来说,make是一条指令,用来执行Makefile这个文件。Makefile是一个内含用户所需某些功能的文件。两者搭配使用,完成项目自动化构建。

为何需要使用这种项目自动化构建工具

1、在日后工作学习中,我们遇到的项目会越来越大,文件数目会越来越多。当需要对文件进行编译的时候,我们就需要一长串指令gcc -o 可执行文件 各种.c源文件进行一次编译就要将这个指令书写一次,十分浪费时间,因此就需要项目的自动化构建。
2、在大型工程中,我们往往需要将每个.c源文件,编译生成.o目标文件。然后再进行链接生成可执行文件。这样,当只有其中几个源文件进行修改时,我们只需要将这些文件重新编译即可,为改动的源文件不需要进行编译,极大减少了时间消耗。

如何书写Makefile文件


1、明确依赖关系,什么文件生成了什么文件(可能一个文件生成一个,一对一。也可能多个文件生成一个,多对一)
2、明确依赖方法,文件是使用使用什么指令生成的另一个文件。
3、注意依赖方法书写要以tab键开头,不可使用空格代替。

伪目标的概念

下面,用clean实现的例子来学习伪目标(clean的作用就是把Makefile执行时生成的临时文件删除)


伪目标的作用
(1)当一个目标被声明为伪目标后,make在执行规则时不会去试图去查找隐含规则来创建它。这样就提高了make的执行效率,也解决了文件目录中如果出现名为clean文件,clean操作不被执行的问题。
(2)伪目标进行make时,不会因操作已被进行而不被操作

以上是关于Linux项目自动化构建工具-make/Makefile的主要内容,如果未能解决你的问题,请参考以下文章

Linux项目自动化构建工具-make/Makefile

Linux项目自动化构建工具——make/Makefile

喵呜:Linux环境基础开发工具使用篇之Linux开发工具:Linux项目自动化构建工具-make/Makefile

Linux基础项目自动化构建工具——Makefile

Linux环境开发工具gdb调试工具+Makefile自动化构建工具

Linux | 项目自动化构建工具 - make/Makefile