Android ndk构建神奇地失败了cygwin与“错误126”

时间:2011-03-10 08:06:12

标签: makefile cygwin android-ndk android-ndk-r5

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

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

没有其他错误。制作比退出状态2.每次都在不同的文件中发生(上面的名称是匿名的)。它似乎更常发生在并行构建中,但有时也会出现非并行构建。

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

3 个答案:

答案 0 :(得分:3)

Make错误126为permission denied。你运行防病毒软件吗?如果是这样,可能是锁定文件或阻止写入,从而导致错误?如果您没有安装防病毒软件,可能还有其他软件可能正在获取文件锁?

答案 1 :(得分:1)

我发现在我们的构建中发生阻止此(及其姐妹错误,发生错误127)的唯一方法是将make的最大并发作业数设置为1.

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

make -j 1 CONFIG=debug

答案 2 :(得分:0)

当我遇到这种情况时,我通常会删除与错误相关的目标文件(在你的情况下是Component.o和Component.o.d)然后重建。