大材小用一下,下面给一个源文件写makefile,认识一下makefile的依赖性。
源代码:
#include "std.h"
int main(int argv,char **argc)
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
for(;i < 10;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
头文件:(std.h)
#ifndef _STD_H
#define _STD_H
#include <stdio.h>
#endif
makefile文件:
test:test.c std.h
gcc test.c -o test
.PHONY:clean
clean:
rm test
执行:
gyz@debian:~/mc$ make
gcc test.c -o test
gyz@debian:~/mc$ ./test
1
2
3
4
5
6
7
8
9
10
gyz@debian:~/mc$ make clean
rm test
可以看到最终的可执行文件是依赖于:后面的.c文件和.h文件的。
.PHONY是为了说明clean是个伪命令。
如果把makefile写成通用版本的,则变成:
test:test.o
gcc -o test test.o
test.o:test.c std.h
gcc -c test.c
.PHONY:clean
clean:
rm test test.o
参考:http://www.cnblogs.com/liangxiaxu/archive/2012/07/31/2617384.html