Android.mk を構成してネイティブ コードをクロス コンパイルし、さまざまなチップセット、つまり armeabi、mips、x86 をサポートしようとしています。次の方法で Application.mk を構成して、さまざまなチップ セットのソース コードをコンパイルできることはわかっています。
APP_ABI := all
これにより、Android-NDK のビルド スクリプトがトリガーされ、すべてのチップセットのソース コードがコンパイルされます。ただし、異なるチップ セットでコンパイルされた異なる静的ライブラリの依存関係を探すように Android.mk に動的に指示したいと考えています。
# Get the architecture info
ARCH := ????
include $(CLEAR_VARS)
LOCAL_MODULE:= mylib
LOCAL_SRC_FILES:= build/lib/libxxx_$(ARCH).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILT_STATIC_LIBRARY)
これは可能ですか?もしそうなら、誰かがそうする方法をアドバイスできますか?
更新: Application.mk で次のようなことを試しました:
APP_ABI := armeabi armeabi-v7a mips x64
Android.mk を使用:
# Get the architecture info ARCH := $(APP_ABI) include $(CLEAR_VARS) LOCAL_MODULE:= mylib LOCAL_SRC_FILES:= build/lib/libxxx_$(ARCH).a LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) include $(PREBUILT_STATIC_LIBRARY)
しかし、次のエラーが発生します。
The LOCAL_SRC_FILES for a prebuilt static library should only contain one item
これは理にかなっています。Application.mk で APP_ABI := all を渡し、動的に参照できるようにしたい。何か案は?