Как собрать libvpx для android arm и x86?
Я создавал наше приложение для Android для armeabi-v7a. Теперь, чтобы добавить поддержку для x86, я расширил Application.mk:
APP_ABI := armeabi-v7a x86
Первая проблема, с которой я сталкиваюсь, заключается в том, что libvpx можно настроить либо для arm, либо для x86:
$ ./libvpx/configure --target=armv7-android-gcc ...
OR
$ ./libvpx/configure --target=x86-android-gcc
Хотите знать, как бороться с несколькими платформами. Создает ли два разных каталога libvpx для двух платформ и использует логику if-then-else в Android.mk, чтобы выбрать правильный каталог? Есть ли способ лучше?
1 ответ
Да, в значительной степени. Если вы храните продукт сборки (как произведено make install
) в параллельных каталогах, названных в соответствии с Android ABI, вы можете упростить его использование из файла Android.mk следующим образом:
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libvpx/$(TARGET_ARCH_ABI)/include
LOCAL_SRC_FILES := libvpx/$(TARGET_ARCH_ABI)/lib/libvpx.a
include $(PREBUILT_STATIC_LIBRARY)
Поскольку публичные заголовки, вероятно, (не должны) быть свободными от чего-либо специфичного для арки, вы также должны иметь возможность поделиться одной их копией, вместо того, чтобы иметь одну копию на арку.