0

我有一个由ndk-build(使用 Android NDK r5b 和 cygwin make 3.81)构建的 JNI 应用程序。构建通常有效,偶尔会失败:

...
Compile++ thumb  : components <= Component.cpp
make: *** [/c/.hudson/jobs/Nightly/workspace/application/obj/local/armeabi/objs/components/Component.o] Error 126
make: Leaving directory `/c/.hudson/jobs/Nightly/workspace/application/obj/local/armeabi/objs/components'

没有其他错误。Make than 以状态 2 退出。它每次都发生在不同的文件中(上面的名称是匿名的)。并行构建似乎更频繁地发生,但有时也发生在非并行构建中。

有没有人知道它可能是什么或至少如何调试它?

4

3 回答 3

3

Make错误 126 是permission denied. 你运行杀毒软件吗?如果是这样,也许它正在锁定文件或阻止写入,从而导致错误?如果您没有打开防病毒软件,也许您有另一个可能正在获取文件锁定的软件?

于 2011-03-16T14:52:10.817 回答
1

我发现防止这种情况(及其姊妹错误,make 错误 127)在我们的构建中发生的唯一方法是将 make 的最大同时作业数设置为 1。

为此,请使用命令行参数“-j 1”运行 make,例如:

make -j 1 CONFIG=debug
于 2011-11-15T09:43:08.537 回答
0

当这种情况发生在我身上时,我通常只是删除与错误相关的目标文件(在你的情况下是 Component.o 和 Component.od)然后重建。

于 2011-06-21T23:40:19.140 回答