编写makefile
编写makefile实际上就是把在命令行中g++编译的内容写到makefile当中来
下面是一个没有省略的例子
mytool: main.o tool1.o tool2.o
g++ main.o tool1.o tool2.o -o mytool
main.o:main.c
g++ main.c -c -Wall -g -o main.o
tool1.o:too1.c
g++ tool1.c -c -Wall -g -o tool1.o
tool2.o:tool2.c
g++ tool2.c -c -Wall -g -o tool2.o
上面不写成
mytool:main.cpp tool1.cpp tool2.cpp
g++ main.cpp tool1.cpp tool2.cpp -o mytool
的原因是,修改tool1.cpp之后,上面的可以只编译tool1和main,而下面的都需要编译
简化版的版本:
OBJS=main.o tool1.o tool2.o
CC=gcc
CFLAGS+=-c -Wall -g
mytool:$(OBJS)
$(CC) $^ -o $@
%.o:%.c
$(CC) $^ $(CFLAGS) -o $@
注:$后面的内容由一开始的等号后面的代替,^代表:后面的内容,@代表:前面的内容,%代表这一句中的内容是一致的