4

最新バージョンのNDKandroid-ndk-r8b
を使用しています。NDKからAndroidコンパイラを介してビルドされたファイルがいくつかあります。 i686-android-linux-gcc
そして今、私はこれらのファイルをプロファイリングしたいと思います。オプションで
再構築しようとしましたが、エラーが発生しました:-pg

/tmp/ccixJFcx.o: In function `main':
test1.C:(.text+0x17): undefined reference to `mcount'
collect2: ld returned 1 exit status

使ってみたいのですi686-android-linux-gprofが、オプションで正常にコンパイルし-pgないとできません。

たとえば、test1.Cのソースを次のようにします。

int main()
{
   return 0;
}

gccこれらのオプションを使用して
-g -O2 -m32 -Wa,--32 -Wl,-melf_i386 -pg 、standartでファイルをコンパイルできます。i686-android-linux-gprof

しかし、私はpgキーを使用できませんi686-android-linux-gcc、誰かが理由を知っていますか?そして、どうすればそれを使用できますか?NDKの再構築プロセスでいくつかの追加のライブラリ/コンパイルオプションを使用する必要がありますか?

4

2 に答える 2

3

Android.mkにいくつかの変更を追加する必要があります。

#include android-ndk-profiler.mk

LOCAL_CFLAGS := -pg
LOCAL_STATIC_LIBRARIES := andprof

LOCAL_LDLIBS += -llog

ステップバイステップの詳細については、http://code.google.com/p/android-ndk-profiler/wiki/Usageを参照してください。

PSx86ランタイムには単にが含まれていないようですmcount。コードの他の場所で定義します。

#if !( defined(_M_ARM) || defined(__arm__) )
   int mcount = 0;
#endif
于 2012-09-24T08:19:48.647 に答える
0

機能がないmcountようです。
Android Sourcesをダウンロードしましたが、mcount関数はありません。1回呼び出すだけなので、このエラーが発生すると思います。

私はアンドロイドの問題で同じ問題を見つけました。

于 2012-09-27T05:48:51.180 に答える