一定要记住make clean
列子
a.out : main.o a.o
g++ -o a.out main.o a.o
main.o : main.cc
g++ -c main.cc
a.o : a.c
g++ -c a.c
.PHONY:clean
clean :
rm -rf main.o a.o
这个坑是这样的,比如你先前生成了 a.o , 然后发现 a.c 代码有问题,重新改过之后。没有使用make clean 清楚到老的 a.o ,那么直接 make a.out 的时候 ,它不会去编译生成 a.o ,而是使用老的a.c , 这样链接的一直都是老的a.o就会有问题。