我有一个由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.每次都在不同的文件中发生(上面的名称是匿名的)。它似乎更常发生在并行构建中,但有时也会出现非并行构建。
有人知道它可能是什么,或至少如何调试它?
答案 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)然后重建。