离开目录.....?

时间:2009-05-26 03:28:06

标签: makefile

当我使用makefile编译我的代码时(我有12个makefile),有一个错误告诉 make.exe[1]: Leaving directory Error 2这是什么原因? “错误2或错误1”是什么意思?

1 个答案:

答案 0 :(得分:8)

当make在此上下文中打印“错误2”时,它只表示递归make调用中存在错误。您必须查看该消息之前的错误消息,以确定子映射中的真正问题。例如,给定一个像这样的Makefile:

all:
        $(MAKE) -f sub.mk

...和这样的sub.mk:

all:
        @exit 1

当我运行GNU make时,它会打印以下内容:

gmake -f sub.mk
gmake[1]: Entering directory `/tmp/foo'
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory `/tmp/foo'
gmake: *** [all] Error 2

Error 2告诉我在子制作中有某种错误。我必须在该消息上方查看来自submake本身的Error 1消息。在那里,我可以看到在尝试使用退出代码1退出时尝试构建all时调用了一些命令。遗憾的是,实际上没有一个标准可以定义应用程序的退出代码,除了简单的“退出代码0表示正常”。您必须查看失败的特定命令并检查其文档以确定特定退出代码的含义。

这些错误消息与Unix errno值无关,正如其他人所说的那样。最外面的“2”只是当子制造有错误时自己分配的错误代码;内部“1”只是失败命令的退出代码。它可以很容易地是“7”或“11”或“42”。