3

我似乎经常遇到这个错误,我在网上找不到关于如何实际做某事的资源。这就是它给我的一切。运行 Git for Windows 最新版本。

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....
4

2 回答 2

2

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

于 2020-07-24T20:31:15.753 回答
0

“等待未完成的工作”只是提供信息,而不是错误消息。在并行模式下运行的GNU会在一项作业遇到需要终止make的错误时发出,以解释为什么整体还没有停止(尽管它可能会很快停止)。尽管我在您的命令行上没有看到请求并行模式的标志,但可能是从环境变量中获取一个。makemake-jmakeMAKEFLAGS

您的示例中实际上没有任何真正的错误消息,这本身就是一个线索。考虑到输出的主要部分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为命令行选项来摆脱“等待未完成的工作”位,但我不希望仅凭这一点就能使您的构建成功。

于 2020-07-25T14:10:59.900 回答