Wiem, że mogę użyć LOCAL_CFLAGS
do przekazywania argumentów do kompilatora. Jednak ndk-build
wstawia opcje po moim LOCAL_CFLAGS
, a zatem mają one pierwszeństwo. Na przykład, chcę podać -Ofast
, ale ndk-build
dodaje -O2
po moich własnych flagach, a ponieważ tylko ostatnia opcja to ta, która ma jakikolwiek efekt, nie mogę przetestować mojego kodu z określonymi ustawieniami optymalizacji.Kontrolowanie flag kompilatora w systemie Android NDK?
Czy jest jakiś sposób na wymuszenie, aby moje LOCAL_CFLAGS
były ostatnimi opcjami w komendzie kompilacji lub wyłączenie ndk-build
przed użyciem pewnych flag?
Na przykład, mój LOCAL_CFLAGS
jest ustawiony na:
-Wall -Wno-psabi -Ofast -D CP_USE_DOUBLES=0 -D USE_CHIPMUNK
i wezwanie do g++
że ndk-build
czyni to:
/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
Dużo tam, ale zauważ, że najpierw określa on -Os
, to jest mój -Ofast
, a następnie jest -O2
. Dlaczego określa on -Os
, jeśli będzie to później mówić: -O2
, nie wiem, ale jestem sfrustrowany, że mój -Ofast
jest nadpisany.
To nie dla mnie, z jakiegoś powodu. Zmienię moje pytanie, aby pokazać rzeczywiste połączenie z 'g ++'. '-O2' jest nadal po' -Ofast'. – Cornstalks
Czy mógłbyś opublikować swój plik Application.mk? –
Niestety, z jakiegoś powodu zupełnie błędnie przeczytałem to i zobaczyłem jako "LOCAL_CFLAGS". To zadziałało dla mnie, dzięki! – Cornstalks