gpt4 book ai didi

android - 控制 Android NDK 中的编译器标志?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:23 32 4
gpt4 key购买 nike

我知道我可以使用 LOCAL_CFLAGS 将参数传递给编译器。但是,ndk-build 在我的 LOCAL_CFLAGS 之后插入选项,因此它们优先。例如,我想指定 -Ofast,但是 ndk-build 在我自己的标志后面添加了 -O2,因为只有最后一个选项是有任何影响的那个,我无法使用某些优化标志集测试我的代码。

有没有办法强制我的 LOCAL_CFLAGS 成为构建命令的最后一个选项,或者禁止 ndk-build 使用某些标志?

例如,我的 LOCAL_CFLAGS 设置为:

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

ndk-buildg++ 的调用是:

/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

里面有很多,但要特别注意,它首先指定了-Os,然后是我的-Ofast,然后是-O2。为什么它指定 -Os 如果它稍后会说 -O2,我不知道,但我很沮丧我的 -Ofast 是被覆盖。

最佳答案

添加

APP_CFLAGS += -Ofast

到您的 Application.mk。

它不会阻止 NDK 添加 -O2 但它会将您的标志放在 NDK 之后。这适用于 NDK r8b。

关于android - 控制 Android NDK 中的编译器标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323655/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com