Contrôle des drapeaux de compilation dans l'Android NDK?

Je sais que je peux utiliser LOCAL_CFLAGS pour transmettre des arguments au compilateur. Cependant, ndk-build est l'insertion d'options après mon LOCAL_CFLAGS, et, par conséquent, ils sont prioritaires. Par exemple, je tiens à préciser -Ofast, mais ndk-build ajoute -O2 après mes propres drapeaux, et depuis que la dernière option est celle qui n'a aucun effet, je ne suis pas en mesure de tester mon code avec certaines options d'optimisation ensemble.

Est-il de toute façon à force de mon LOCAL_CFLAGS être la dernière des options sur la commande de construction, ou pour désactiver ndk-build de l'utilisation de certains drapeaux?

Par exemple, mon LOCAL_CFLAGS est fixé à:

-Wall -Wno-psabi -Ofast -D CP_USE_DOUBLES=0 -D USE_CHIPMUNK

Et l'appel à g++ que ndk-build fait est:

/Library/Android/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi-v7a/objs/native-activity/Main.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__ -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-exceptions -fno-rtti -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Ijni -Ijni/Chipmunk/include/chipmunk -I/Library/Android/android-ndk-r8b/sources/android/native_app_glue -I/Library/Android/android-ndk-r8b/sources/cxx-stl/stlport/stlport -I/Library/Android/android-ndk-r8b/sources/cxx-stl//gabi++/include -Ijni -DANDROID -Wall -Wno-psabi -Ofast -D CP_USE_DOUBLES=0 -D USE_CHIPMUNK -Wa,--noexecstack -frtti -O2 -DNDEBUG -g -I/Library/Android/android-ndk-r8b/platforms/android-9/arch-arm/usr/include -c jni/Main.cpp -o ./obj/local/armeabi-v7a/objs/native-activity/Main.o

Il y en a beaucoup là-dedans, mais plus particulièrement pour l'avis qu'il précise tout d'abord -Os, puis il y a mon -Ofast, et puis après il y a -O2. Pourquoi il spécifie -Os si elle va le dire plus tard -O2, je ne sais pas, mais je suis frustré de mon -Ofast est remplacée.

OriginalL'auteur Cornstalks | 2012-11-10