0

helloWorld サンプルをビルドして .so を取得し、Eclipse で実行することができません。プロジェクトを正常にインポートし、必要に応じて変数をルート パスに変更しました。これは私のbuild_native.shです。そのファイルで行った唯一の変更を貼り付けています

NDK_ROOT_LOCAL=/cygdrive/e/android-ndk-r8
COCOS2DX_ROOT_LOCAL=/cygdrive/e/cocos2d

NDK の HelloWorld サンプルを正常に実行したため、私の NDK は正常に動作しています。SDK のバージョンは 20、NDK のバージョンは 8 で、1.7 以上の cygwin を使用しています。NDK ディレクトリで chown を実行しました。しかし、cocos2d の HelloWorld サンプル プログラムでコマンド ./build_native.sh を実行すると、このエラー

E:/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-          linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/png.a: No such file: Permission denied
collect2: ld returned 1 exit status

NDK ディレクトリ ウィンドウで png.a を検索すると、そのファイルが見つかりません。権限エラーなのか、ファイルが存在しないのか混乱しています。しかし、ファイルが存在しない場合、最新の NDK を持っています。助けが必要!!!

4

1 に答える 1

0

私も試してみたところ、ビルドされたファイルのアクセス許可が欠落していたようです。

$ ls -l obj/local/armeabi/png.a
---------- 1 someuser Domain Users 912618 Jul 12 18:23 obj/local/armeabi/png.a

現在アクセスできないように見えるリンクがフォーラムに提案さいます。

とにかく、修正するには、ファイルにアクセス許可を設定できます。

$ cd obj/local/armeabi/
$ chmod 664 *.a
$ cd ../../..

編集: /etc/fstab のデフォルトのパーミッション

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

これに続いて、実行できるはずです./build_native.sh

現在のディレクトリの下にある、(読み取り/書き込み) アクセス許可がないすべてのファイルを見つけるために使用できるコマンドは次のとおりです。find . -type f -perm 0

この回答を参照して、作業ディレクトリの下のすべてのファイルに書き込み権限を設定してください。

linux/unix のパーミッションに慣れていない場合は、chmodのチュートリアルを読んでパーミッションの概念を理解することを検討してください。

于 2012-07-12T13:38:15.883 に答える