一个简单的 Makefile 问题

  12 
 13 #每个 obj 的依赖项,最好写上依赖的 .h,否则 .h 更改将不重新编译 .o
 14 
 15 CRequestHandlerFactory.o:./CRequestHandlerFactory.cpp   ./CRequestHandlerFactory.h   ./CRequestHandler.h
 16     $(CXX) -c $(CXXFLAGS)  -o CRequestHandlerFactory.o ./CRequestHandlerFactory.cpp
 17 
 18 CRequestHandler.o:./CRequestHandler.cpp  ./CRequestHandler.h
 19     $(CXX) -c $(CXXFLAGS)  -o CRequestHandler.o ./CRequestHandler.cpp                                                                              
 20 
 21 
 22 
 23 
 24 
 25 all:CRequestHandler.o CRequestHandlerFactory.o
 26 
 27 .PHONY: clean
 28 clean :
 29     rm -rf $(OBJS)

为啥我这里指定了两个 目标, Makefile 每次确只生成上面那个目标。

先用 --dry-run 看看执行哪些指令,看顺序对不对.

更新之后的 Makefile

为啥 all 放到上面就 ok 了。Makefile 拿到有顺序?

你运行make all也是没问题的,当你在make命令后面没有指定target的时候,make会自动执行makefile中遇到的第一个target,所以就出现了你说的那种情况

你可以百度一个标准的Makefile然后进行修改