如果大家编译过内核的话,你会发现linux源码中有很多的makefile,每个目录下都有一个makefile,当你在根目录下执行make命令的时候,其实是执行根目录下的makfile,然后再根目录下的makefile再执行各个目录下的makefile文件,这是到底怎么实现呢?其实这就是makefile的嵌套执行,下面是我学习的时候总结的:
我在/study_mk中建立了一个目录
1. mkdir try_tmp
2. cd try_tmp
3. 建立c语言源文件a.c
vim a.c
内容如下:
#include <stdio.h>
int main()
{
hello();
return 0;
}
5. 在此目录中建立文件
mkdir home
6. cd home
7. 再次建立一个c源文件
vim b.c
内容如下:
#include<stdio.h>
void hello()
{
printf("hello everyone!\n");
}
8. 然后在这个目录中创建Makefile
vim Makefile
内容如下
b.o:b.c
cc -c -o b.o b.c
9. 回到上层目录
cd ..
10. 编辑上层Makefile
内容如下
#这个地方必须用VPATH进行声明,否则ma