1

Ubuntu Linux 10.0.4 でAndroid NDK Linux ビルドを使用して簡単なプログラムをコンパイルしています。

//no includes!!!
int main()
{   
    int a = 1, b = 2, c = -1;
    return a + b + c - ( a + b + c);

}

この gcc 用の bash スクリプトを実行すると、

bin='/media/sdb/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin'
rm -r ./obj/*.* 
    $bin/arm-linux-androideabi-gcc -c ./main.c -o ./obj/main.o 
    $bin/arm-linux-androideabi-gcc ./obj/main.o -o ./obj/main.exe 

gcc の出力は、ld( arm-linux-androideabi-ld ) から、 7 (2 番目のカンマ区切りは ARM)シグナルとして終了したというメッセージを示します。

この単純なプログラムは Linux でさえコンパイルできません。助けてください!

4

1 に答える 1

1

ubuntu 12.4に静的ツールチェーンをインストールしました

sudo apt-get install gcc-arm-linux-gnueabi  // install this toolchain 

arm-linux-gnueabi-gcc -static -o main.exe main.c  // this way compile ur binary

Androidマシンでadbをコピーして実行します

./main.exe

これは私のアンドロイド携帯で動作します。

編集:

10.04 の場合

   sudo add-apt-repository ppa:linaro-maintainers/toolchain
    sudo apt-get update
    sudo apt-get install gcc-arm-linux-gnueabi

Edit2: ここでの静的コンパイルでは、バイオニックコードを使用せず、ELF にコピーしてライブラリを含めます。

動的コンパイルが必要な場合、またはバイオニック コードに依存したい場合は、次を使用します

$NDK/docs/STANDALONE-TOOLCHAIN.html https://android.googlesource.com/platform/ndk/+/master/docs/STANDALONE-TOOLCHAIN.html

于 2013-02-04T07:16:28.247 に答える