待完善。。。
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种,一种是显式规则,另一种是隐式规则。
- 显示规则
显式规则用于说明何时及如何重新生成目标,其列出了目标依赖的文件信息,并通过调用命令来创建或更新目标,其语法一般为:
代码语言: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.o
和channle.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
就可以全部清除了。
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站