Android ndk build mysteriously failing under cygwin with "Error 126"
I have a JNI application built by ndk-build
(using Android NDK r5b and cygwin make 3.81). The build usually works, by occasionally fails with:
...
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'
There is no 开发者_开发百科other error. Make than exits with status 2. It happens in different file each time (the name above is anonymized). It seems to happen more often with parallel builds, but sometimes happens with non-parallel builds too.
Does anybody have an idea what it might be or at least how to debug it?
Make
error 126 is permission denied
. Do you run antivirus software? IF so, maybe it is locking files or preventing writes, and therefore causing errors? If you do not have antivirus software on, maybe you have another software which might be acquiring file locks?
The only way I've found to prevent this (and its sister error, make error 127) from occurring in our build is to set make's maximum number of simultaneous jobs to 1.
To do this, run make with the command-line parameters "-j 1", e.g.:
make -j 1 CONFIG=debug
When this happens to me, I usually just delete the object files associated with the error (in your case Component.o and Component.o.d) then rebuild.
精彩评论