Linux--makefile

一、makefile的作用

makefile是一个文件,是围绕依赖关系和依赖方法的自动化编译工具

一个工程中的源文件有很多,按照不同的类型、功能、模块放在不同的目录中。而makefile定义了一系列的规则来指定,那些文件需要先编译,那些文件需要后编译,以及更加复杂的功能

makefile的好处:自动化编译。makefile在编写完成后,只需要执行make命令,就可以对整个工程进行自动编译,提高了软件开发的效率

make是一条命令,用来运行makefile文件。makefile是一个文件,用于定义编译的规则。两个搭配使用,完成项目自动化构建

二、使用方法

一个简单的makefile文件编写

test:test.c
	gcc -o test test.c
.PHONY:clean
clean:
	rm -f test

这段代码中的解释如下:

1)现有文件为test.c,目标文件为test。通过执行gcc生成test文件

2).PHONY的英文示意是伪造的、假的。因此代码可以简单理解为伪造了一个clean文件。执行clean文件就会执行下面clean内实现的语句rm -f test

程序执行结果如下:

Linux--makefile_第1张图片

三、问题 

问题一:如果连续执行两次make操作,是否会生成两个test可执行文件?

并不会重复生成文件,会提示可执行文件已经为最新

Linux--makefile_第2张图片

问题二:makefile如何得知是否需要重新执行呢?

通过对比时间来执行,可以使用stat命令来查看文件状态

如果源文件的更改时间比可执行文件的时间跟新,则重新生成可执行文件

Linux--makefile_第3张图片

可以通过touch测试,touch的功能是如果不存在文件则生成该文件,如果存在文件则更新该文件的时间

从下图可以看出,在touch后test.c的时间更新。因此make会重新生成新的可执行文件

Linux--makefile_第4张图片

你可能感兴趣的:(Linux,linux,运维,服务器)