Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次对象文件转储到其他目录时生成文件重建 我有一个Mag文件,每次编译时都会不断地重建C++源代码。我发现原因是我正在将对象文件转储到一个单独的目录中。 make文件中的一行是: $(CPP_COMPILER) $(COMPILE_FLAGS) $(RELEASE_OPT_FLAGS) -c Test.cpp $(INCLUDE_PATH) -o objfiles/$(OUTDIR)/Test.o_C++_Linux_Makefile - Fatal编程技术网

每次对象文件转储到其他目录时生成文件重建 我有一个Mag文件,每次编译时都会不断地重建C++源代码。我发现原因是我正在将对象文件转储到一个单独的目录中。 make文件中的一行是: $(CPP_COMPILER) $(COMPILE_FLAGS) $(RELEASE_OPT_FLAGS) -c Test.cpp $(INCLUDE_PATH) -o objfiles/$(OUTDIR)/Test.o

每次对象文件转储到其他目录时生成文件重建 我有一个Mag文件,每次编译时都会不断地重建C++源代码。我发现原因是我正在将对象文件转储到一个单独的目录中。 make文件中的一行是: $(CPP_COMPILER) $(COMPILE_FLAGS) $(RELEASE_OPT_FLAGS) -c Test.cpp $(INCLUDE_PATH) -o objfiles/$(OUTDIR)/Test.o,c++,linux,makefile,C++,Linux,Makefile,我是否可以设置一些规则,让make首先检查这个dir(objfiles),如果不需要,不要每次都重新构建源代码 谢谢您的帮助。您应该使规则本身引用正确的路径: 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作为makefil

我是否可以设置一些规则,让make首先检查这个dir(objfiles),如果不需要,不要每次都重新构建源代码


谢谢您的帮助。

您应该使规则本身引用正确的路径:

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

谢谢你的评论。但在这之后,我陷入了另一个问题。所以$(OUTDIR)是一个变量,我创建如下-GCC_VERSION=
GCC--VERSION | cut-d”“-f3 | head-1
OUTDIR=GCC_$(GCC_VERSION)$(PLATFORM),现在我尝试在target中使用它。大声说出几个错误。@user888270:您试图同时解决多个问题;分而治之。在尝试在命令中使用该变量之前,请验证该变量是否具有您认为它具有的值,以及您打算使用的目录是否确实存在。如果
Makefile
正确,您所请求的正是Make如何开箱即用。您没有向我们显示整个文件,因此我们无法为您排除故障;但是根据您的描述,您对此目标的依赖关系没有正确声明。