我正在构建一个胖APK,其中包含用于armeabi
和的单独的* .so库armeabi-v7a
。我仅使用命令行进行构建(即使用ndk-build
和ant
)。有没有一种方法可以从我的C代码中检测ndk-build
当前是否为构建armeabi
或为构建armeabi-v7a
?最好是,我希望能够在编译时检测到这种情况,但是如果没有其他选择,则在运行时进行体系结构检测也就足够了。
例如,有类似的东西
#ifdef __armeabiv7a__
...
#else
...
#endif
在编译时检测架构?
我知道,我可以通过其它编译器选项LOCAL_CFLAGS
中Android.mk
,但这些标志总是通过各种体系结构,因此不会帮我。还是有一个标签,我可以用在Android.mk
通过特定标志的armeabi
或armeabi-v7a
唯一的?
我知道我可以
LOCAL_CFLAGS
在Android.mk中传递其他编译器标志,但是这些标志始终为所有架构传递
没有什么可以阻止您仅在构建特定ABI时设置标志的:
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS += -DARMEABI_V7A
endif
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句