新人问一下Makefile重复编译的问题

我最近做一个项目,c++语言编写,tcp套接字封装成类,但写Makefile的时候发现每次编译都会把所有目标都重新编译一遍

all:  buffer server client recept test_client test_server
buffer: lib/buffer.h buffer.cc
	g++ -c buffer.cc
server: lib/server.h server.cc
	g++ -c server.cc
client: lib/client.h client.cc  
	g++ -c client.cc 
recept: lib/recept.h recept.cc 
	g++ -c recept.cc 
test_client: lib/client.h test_client.cc buffer
	g++ -c test_client.cc
	g++ test_client.o client.o buffer.o -o test_client
test_server: lib/server.h test_server.cc buffer
	g++ -c test_server.cc
	g++ test_server.o server.o recept.o buffer.o -o test_server
clean:
	rm *.o

其中编译时,make没有说**已是最新,我也不知到怎么回事

目标是 buffer.o 吧,不是 buffer,命令 g++ -c buffer.cc 生成的是 buffer.o。

buffer是目标名称,buffer.o是生成的obj文件:yum:

目标应该是文件名吧,不是自己随意起的。

是这样,紫薯补丁

非文件名的target得加上.PHONY标记