Makefile的详细介绍和使用

2021-08-24 14:52:13 浏览数 (1)

待完善。。。

makefile详细介绍和使用

Makefile定义规则

参考链接1:https://seisman.github.io/how-to-write-makefile/invoke.html

参考链接2:https://www.cnblogs.com/LittleHann/p/3855905.html

规则是makefile最重要的概念,其告诉make 目标文件的依赖关系,以及如何生成及更新这些目标文件。在makefile文件规则有2种,一种是显式规则,另一种是隐式规则。

  1. 显示规则

显式规则用于说明何时及如何重新生成目标,其列出了目标依赖的文件信息,并通过调用命令来创建或更新目标,其语法一般为:

代码语言:javascript复制
targets : prerequisites

recipe
…

targets:为要生成或更新的目标

prerequisites:为目标依赖的关系

recipe:为生成目标的命令,

代码语言:javascript复制
foo.o : foo.c defs.h

cc -c -g foo.c

其中foo.o为target,foo.c defs.h 为prerequisites,cc -c -g foo.c为recipe。

示例讲解
代码语言:javascript复制
test:main.o channle.o
	gcc main.o channle.o -o test
main.o:main.c function.h
	gcc -c main.c -o main.o
channle.o:channle.c  WavHead.h
	gcc -c channle.c -o channle.o -std=c99

.PHONY:clean
clean:
	-rm -rf *.o

执行的过程简单说就是最终需要生成一个名为test的文件,这个文件需要main.ochannle.o,于是继续往下执行,然后通过命令gcc -c main.c -o main.o得到了main.o文件,同理再得到channle.o文件,最后通过命令gcc main.o channle.o -o test进行链接最终就会得到一个名为test的可执行文件了。

上面的代码在linux的命令窗口下输入make命令就可以执行了,最终会生成一个test的可执行文件。如果需要清除生成的中间.o文件,输入make clean就可以全部清除了。

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0 人点赞