linux操作系统下的makefile编写
其中,有三个文件,main.c hello1.c hello1.h hello2.c hello2.c
main.c中包含和调用hello1 和hello2的函数
故makefile可以写成
mytool:main.o hello1.o hello2.o
gcc main.o hello1.o hello2.o -o mytool
main.o: main.c
gcc main.c -c -Wall -g -o main.o
hello1.o: hello1.c
gcc hello1.c -c -Wall -g -o hello1.o
hello2.o: hello2.c
gcc hello2.c -c -Wall -g -o hello2.o
clean:
rm *.o mytool -rf
也可以进一步简化
OBJS=main.o hello1.o hello2.o
CC=gcc
CFLAG+=-c -Wall -g
mytool: $(OBJS)
$(CC) $(OBJS) -o mytool
main.o: main.c
$(CC) main.c $(CFLAG) -o main.o
hello1.o:hello1.c
$(CC) hello1.c $(CFLAG) -o hello1.o
hello2.o:hello2.c
$(CC) hello2.c $(CFLAG) -o hello2.c
clean:
rm *.o mytool -rf
再进一步简化
OBJS=main.o hello1.o hello2.o
CC=gcc
CFLAG+=-c -Wall -g
mytool: $(OBJS)
$(CC) $(OBJS) -o mytool
%.o: %.c
$(CC) $^ $(CFLAG) -o $@
clean:
rm *.o mytool -rf