5

このガイドに従って、MountainLionでAndroidNDKを使用してAndroid用のライブラリを構築しようとしています

http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/

ライブラリをコンパイルするときは、次のコマンドを実行します。

cd <path to jni>
<ndk>/ndk-build

次のエラーが発生します。

Compile++ thumb  : echoprint-jni <= AndroidCodegen.cpp
arm-linux-androideabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory
make: *** [/Users/wingdom/Desktop/obj/local/armeabi/objs/echoprint-jni/AndroidCodegen.o] Error 1

パス変数に必要なものをすべて追加したと思います。

export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:Developer/android-sdk/tools:/Developer/android-sdk/platform-tools:/Developer/android-ndk:/Developer/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin

これをコンパイルするには、他に何をする必要がありますか?現在r8bNDKを使用していますが、6までのバージョンで試してみました。

編集:

私はこの解決策を試しました:androidndkサンプルプロジェクトのビルド中にエラーが発生しました

追加する

export PATH=$PATH:/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2

私のパスにこのエラーが発生します:

cc1plus: error: unrecognized command line option "-mbionic"
cc1plus: error: unrecognized command line option "-mthumb"
cc1plus: error: unrecognized command line option "-mfpu=vfp"
/Users/wingdom/Desktop/jni/AndroidCodegen.cpp:1: error: bad value (armv5te) for -march= switch
/Users/wingdom/Desktop/jni/AndroidCodegen.cpp:1: error: bad value (xscale) for -mtune= switch
make: *** [/Users/wingdom/Desktop/obj/local/armeabi/objs/echoprint-jni/AndroidCodegen.o] Error 1

しかし、追加

export CROSS_COMPILER=$PATH:/Developer/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin

上記のリンクのように、役に立ちません。

4

4 に答える 4

6

同じエラーが発生しました。
'gcc、g++'コマンドも実行できませんでした。だから私は解決策を見つけるためにたくさんグーグルで検索しましたが、何も役に立ちませんでした。

次に、ndkの一部のファイル名が正しくなく、_一部のファイル名に尾が付いていることがわかりました。(私の場合、toolchains / arm-linux-androideabi-4.6 / prebuilt / darwin-x86 / arm-linux-androideabi/binフォルダーにあります。gcc_、、g++_c++_代わりにgcc、がありg++ますc++。)
Unarchiverを使用してNDKアーカイブを抽出したので、アーカイブ解除手順に問題があると思います。

そこで、NDKを再ダウンロードしてMD5チェックサムをチェックし、Macのデフォルトのアーカイブユーティリティを使用してアーカイブを抽出しました。

これで、問題は解決しました。

于 2012-09-18T01:36:13.627 に答える
0

NDKのダウンロード/アンパックが正しくないようです。探しているcc1plusバイナリはにあるはずです$NDK_HOME/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/libexec/gcc/arm-linux-androideabi/4.4.3/。そこにない場合は、SDKを再ダウンロードするか、再度解凍してみてください。

そこにある場合V=1、必ずに渡してビルドし、コンパイラに渡されるndk-build奇妙なオプションがあるかどうかを確認してください。-Bこの-Bオプションはgcc、その「サブプログラム」(そのうちのcc1plus1つ)を見つける場所を示します。r8のコマンドラインに何もないはずなので、ある場合は、どこかで不正なフラグが渡されています。たとえば、私のシステムでは、C++NDKコマンドラインは次のようになります。

 /opt/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi-v7a/objs/sometarget/SomeCppFile.o.d -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-exceptions -fno-rtti -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I/opt/android-ndk/sources/cxx-stl/stlport/stlport -I/opt/android-ndk/sources/cxx-stl//gabi++/include -DANDROID -Wall -Wa,--noexecstack  -frtti  -O2 -DNDEBUG -g   -I/opt/android-ndk/platforms/android-8/arch-arm/usr/include -c  jni/SomeCppFile.cpp -o ./obj/local/armeabi-v7a/objs/sometarget/SomeCppFile.o
于 2012-09-17T21:39:16.270 に答える
0

たぶんあなたはg++をインストールする必要があります:

$sudo apt-get install g++

于 2013-12-04T06:02:32.297 に答える
0

私はこれの根本的な原因を見つけるために約1日を費やしました

arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file... 

およびその他の問題。

問題は、NDKとSDKを7zで解凍したため、すべてのバイナリの実行可能ファイルが削除され、Eclipseがcc1を起動できなかったことです。tarを使用してSDKとNDKのtarファイルを解凍すると、すべてが正常に機能し始めました。

于 2014-07-29T09:46:04.563 に答える