Android用のシンプルなCプログラムをNDK経由でコンパイルし、アンドロイドで実行しました。AndroidでCプログラムを実行中
Cソース:コンパイルCソースの
#include <stdio.h>
int
main()
{
printf ("Hello world!\n");
}
スクリプト:
$ export PATH=/data/local/bin:$PATH
$ hello
Hello world!
[1] + Stopped (signal) hello
$ exit
You have stopped jobs.
[1] Illegal instruction hello
$ exit
私はプログラムにそれを実行したとき:私はAndroid上で、端末上でプログラムを実行したときに何が起こった
#!/bin/bash
PREFIX="/opt/android-ndk-r7"
CC="$PREFIX/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-arm/bin/arm-linux-androideabi-gcc"
NDK="$PREFIX/platforms/android-14/arch-arm"
CFLAGS="-I$NDK/usr/include"
LDFLAGS="-nostdlib -Wl,-rpath-link=$NDK/usr/lib -L$NDK/usr/lib $NDK/usr/lib/crtbegin_dynamic.o -lc"
$CC -o hello hello.c $CFLAGS $LDFLAGS
"Stopped"と "Illegal instruction"が発生しました。
この問題を解決するにはどうすればよいですか?
もちろん、 "return 0;"あなたのプログラムでは、なぜそれがクラッシュするのかわかりません。 –
@AmigableClarkKant:C99では、 'return 0;'が暗示されています... –
@KerrekSB、本当ですか?偉大で真実なのは何の侮辱なのですか? –