make [1]:***等待未完成的工作

时间:2018-12-22 13:23:29

标签: makefile msys

我似乎经常收到此错误,而且我在网上找不到有关如何实际执行此操作的资源。这就是给我的一切。正在运行Windows最新版本的Git。

make-4.2$ make
C:/ProgramData/chocolatey/lib/make/tools/install/bin/make  all-recursive
make[1]: Entering directory 'C:/Users/bjwil/Downloads/make-4.2.tar/make-4.2'
make[1]: *** Error -1
.  Stop.
make[1]: *** Waiting for unfinished jobs....

2 个答案:

答案 0 :(得分:0)

使用-k标志可能会有所帮助。即使遇到错误,这也会强制make继续执行。我在make -j上遇到问题,该问题将在发现第一个错误时停止,但是-k标志可以使其通过并继续运行。它仍会正常显示错误,只是不会在那一刻放弃。

答案 1 :(得分:0)

“等待未完成的作业”仅是参考信息,而不是错误消息。在并行模式下运行的GNU make发出以下消息:当一个作业遇到需要终止make的错误时,解释为什么整个make尚未停止(尽管可能会非常停止)很快)。尽管我在命令行上没有看到-j标志来请求并行模式,但是也许make正在从环境变量MAKEFLAGS中获取一个。

您的示例中实际上没有任何真正的错误消息,这本身就是一个线索。考虑make输出的主要部分...

make-4.2$ make
C:/ProgramData/chocolatey/lib/make/tools/install/bin/make  all-recursive
make[1]: Entering directory 'C:/Users/bjwil/Downloads/make-4.2.tar/make-4.2'
make[1]: *** Error -1

...我的第一个猜测是make无法访问文件夹C:/Users/bjwil/Downloads/make-4.2.tar/make-4.2。可能的原因是

  • 这不是真实的文件夹。完整路径表明,它可能是tar存档内容的虚拟文件夹视图。

  • 它已从您下方删除,或者其权限已更改,以使他们拒绝访问。前者很难在Windows上实现,但也许是可行的。

我希望您可以通过将-j1指定为命令行选项来摆脱“等待未完成的工作”这一位,但是我不希望单独使用它来使构建成功。