target: components ls
TAB rule
main:main.o mytool1.o mytool2.o
gcc -o main main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
gcc -c main.c -I.
mytool1.o:mytool1.c mytool1.h
gcc -c mytool1.c -I.
mytool2.o:mytool2.c mytool2.h
gcc -c mytool2.c -I.
$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件.
mkf:mkf.o mytool1.o mytool2.o
gcc -o $@ $^
mkf.o:mkf.c mytool1.h mytool2.h
gcc -c $< -I.
mytool1.o:mytool1.c mytool1.h
gcc -c $< -I.
mytool2.o:mytool2.c mytool2.h
gcc -c $< -I.
这个规则表示所有的 .o文件都是依赖与其相应的.c文件的.例如mytool.o依赖于mytool.c
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
.c.o:
gcc -c $< -I.;
CC 表示我们的编译器名称,缺省值为cc.
CFLAGS 表示我们想给编译器的编译选项
LDLIBS 表示我们的在编译的时候编译器的连接库选项.(我们的这个程序中还用不到这个
选项)
o
CC=gcc
CFLAGS=-g -Wall -O2 -I.
main:main.o mytool1.o mytool2.o
.c.o: