这里只是一个介绍,详细makefile学习请直接在主页资源下载pdf文档。
Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要得可执行文件。实现这种“自动化编程”。
解决问题
将一个大的项目转化成多个小部分,可提高软件调试、维护的效率,但同时会使编译的命令增多(比如生成多个目标文件,再链接一起生成可执行文件)。每次对程序源代码进行改进后,都要执行多条命令来重新编译,对开发人员来说是很大的负担。
一个Makefile文件主要含有一系列的规则,每条规则包含以下内容:
一个目标(target):即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean”。
一个或多个依赖文件(dependency)列表:通常是编译目标文件所需要的其他文件。
一系列命今(command):是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字符必须为TAB字符。
一个简单的makefile
Makefile文件的一般格式是:
目标:依赖项列表
(Tab缩进)命令
在上图中的main,stack.o,main.o都是目标;
stack.o,main.o是main目标的依赖;
①当我们要生成main时,需要stack.o,main.o,但是这两个文件还没有生成;
②在下面同样的道理以stack.o,main.o为目标生成;
③每个都是执行命令。
当我们需要编译文件时,我们就不需要关心这之间的依赖等等,makefile制定好了规则,我们只需#make+目标文件名就行了,也不需要在修改源码后,又重新对相关文件一步一步编译。
makefile详细学习资源pdf已经上传,可进入主页下载。
无法下载的,评论区留言。