build-ndkで以下のようなエラーが出たときの対処法
OpenCV for Androidのサンプルプログラムをndk-buildで動かそうとしたら発生しました。OpenCVに限らず、他のjniソースでも発生する恐れがありそうなので、同じエラーであれば試してみてください。
・プロジェクトディレクトリ上でndk-buildの実行
$ ndk-build E:/android-ndk-r5b/toolchains/arm-linux-androideabi- 4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux- androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe: C:/Users/koyam_000/Desktop/OpenCV-2.3.1-android- bin/samples/tutorial-3-native/obj/local/armeabi-v7a/libstdc++.a: No such file: Permission denied collect2: ld returned 1 exit status make: *** [/cygdrive/c/Users/tkoyama/OpenCV-2.3.1-android- bin/samples/tutorial-3-native/obj/local/armeabi- v7a/libnative_sample.so] エラー 1
原因:
対象のファイルがndk-buildするための権限を与えていないためにndk-buildの実行が失敗します。
対策:
プロジェクトフォルダに権限を与えてあげましょう。簡単なのはchmod 777ですが、他のユーザとフォルダを共有しているときは数字を下げた方が良いかもしれません。とりあえず、ご自身の実行権限さえ付与すればOKだと思います。
例: -Rでフォルダ内のファイル全てに適用。
$ chmod -R 777 ./TestProject
以上です。