离开目录.....?

Ren*_*h G 6 makefile

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

Eri*_*ski 8

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

all:
        $(MAKE) -f sub.mk
Run Code Online (Sandbox Code Playgroud)

......和这样的sub.mk:

all:
        @exit 1
Run Code Online (Sandbox Code Playgroud)

当我运行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
Run Code Online (Sandbox Code Playgroud)

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

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