每次将对象文件转储到其他目录时,都会重新生成makefile文件

我有一个makefile,每次编译时都会继续重buildc ++源代码。 我找出原因是我在一个单独的目录中转储对象文件。
make文件的一行是:

$(CPP_COMPILER) $(COMPILE_FLAGS) $(RELEASE_OPT_FLAGS) -c Test.cpp $(INCLUDE_PATH) -o objfiles/$(OUTDIR)/Test.o 

我可以把一些规则,首先检查这个目录(OBJFILES),如果不需要不重新build立源每次?

谢谢你的帮助。

你应该使规则本身指向正确的路径:

 objfiles/$(OUTDIR)/Test.o: Test.cpp $(CPP_COMPILER) $(COMPILE_FLAGS) $(RELEASE_OPT_FLAGS) -c Test.cpp $(INCLUDE_PATH) -o objfiles/$(OUTDIR)/Test.o 

如果你仍然想把Test.o作为makefile的目标,那么你可以很容易地添加一个:

 Test.o: objfiles/$(OUTDIR)/Test.o