1

バイナリを最適化するためにAndroid.mkファイルを取得しようとしています。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := fred
LOCAL_SRC_FILES := fred.c
LOCAL_LDLIBS := -llog
LOCAL_CFLAGS = -O3
NDKDEBUG = 0

include $(BUILD_SHARED_LIBRARY)

次にこれを保存して実行します

$NDK/ndk-build -B V=1

次に、結果のライブラリでmd5sumを実行しますが、ライブラリとで構築されたライブラリに違いはありません。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := fred
LOCAL_SRC_FILES := fred.c
LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

だから、私は何が間違っているのですか?

コンパイラの出力は次のようです。

/home/AStupidNoob/Documents/Android/android-ndk-r7b/toolchains/arm-linux-androideabi-
4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -MMD -MP -MF /home/AStupidNoob
/workspace/Fred/obj/local/armeabi/objs/fred/fred.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=armv5te -mtune=xscale -msoft-float -mthumb -Os 
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I/home/AStupidNoob
/workspace/Fred/jni -DANDROID -O3 -Wa,--noexecstack -O2 -DNDEBUG -g -I/home/AStupidNoob
/Documents/Android/android-ndk-r7b/platforms/android-4/arch-arm/usr/include -c  
/home/AStupidNoob/workspace/Fred/jni/fred.c -o /home/AStupidNoob/workspace/Fred/obj
/local/armeabi/objs/fred/fred.o

これで問題ないかどうかはわかりませんが、問題はおそらく3つの最適化フラグ-Os -O2 -O3であるようですが、これを修正するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

APP_OPTIM変数を調べます。release最適化されたコードのために、Application.mk ファイルに私のものを設定しました。(この方法でさまざまなオプションを使用して探している粒度を取得できるかどうかはわかりません-O#が、少なくとも何かを取得できます。)

于 2012-07-03T05:03:16.460 に答える