Android ndk build mysteriously failing under cygwi

2019-06-09 22:36发布

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?

3条回答
Explosion°爆炸
2楼-- · 2019-06-09 22:53

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?

查看更多
聊天终结者
3楼-- · 2019-06-09 23:04

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.

查看更多
萌系小妹纸
4楼-- · 2019-06-09 23:15

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
查看更多
登录 后发表回答