目标嵌入在包含的Makefile中时找不到目标命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标嵌入在包含的Makefile中时找不到目标命令相关的知识,希望对你有一定的参考价值。

我试图在Makefile上运行GNU Make,说Makefile1包含另一个Makefile2。以下是Makefile1的外观

include absolute_path to Makefile2


target_from_Makefile2: Dependencies
              run_target_from_Makefile2

这是Makefile2的样子

run_target_from_Makefile2: Dependencies
     run_xyz

这是我看到的错误

make: run_target_from_Makefile2: Command not found
Makefile1:5: recipe for target 'run_target_from_Makefile2' failed
make: *** [target_from_Makefile2] Error 127
答案

makefile的格式是

targetFile: dependency1 dependency2 ...
        run_command_to_build_targetFile

dependency1:
        run_command_to_build_dependency1

dependency2:
        run_command_to_build_dependency2

将makefile 1更改为:

include absolute_path to Makefile2


target_from_Makefile2: Dependencies run_target_from_Makefile2

您应该停止获取错误,但构建过程有点不清楚。如果您需要更多帮助,请发布一些更确定的代码。

另一答案

make recipe是一个shell脚本。调用一个shell,并将配方文本传递给shell运行。 makefile中目标的名称不是shell脚本命令,因此您不能将其用作shell命令来运行。

您可以将其他目标声明为先决条件:

target_from_Makefile2: Dependencies run_target_from_Makefile2

所以makefile2中的目标是先决条件,或者你可以使用递归make,就像这样(但在这种情况下,包含makefile2没有意义):

target_from_Makefile2: Dependencies
          $(MAKE) -f path_to_makefile2 run_target_from_Makefile2

以上是关于目标嵌入在包含的Makefile中时找不到目标命令的主要内容,如果未能解决你的问题,请参考以下文章

make: *** 没有指明目标并且找不到 makefile。 停止

make: *** 没有指明目标并且找不到 makefile. 停止.

make: *** 没有指明目标并且找不到 makefile。 停止。

linux 源代码程序终端安装make后出现 make: *** 没有指明目标并且找不到 makefile。 停止。

make: *** 没有指明目标并且找不到 makefile。 停止。

make: *** 没有指明目标并且找不到 makefile。 停止。