0

アプリケーションで ffmpeg ライブラリを使用したいので、次のように Android.mk ファイルを作成しました。

LOCAL_PATH := $(call my-dir)
TOP_LOCAL_PATH := $(LOCAL_PATH)

include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/android-8/armv5te/include/

LOCAL_CPP_EXTENSION := .cpp
LOCAL_C_EXTENSION := .c

LOCAL_CFLAGS := -O3
LOCAL_MODULE    := FilterEngine
LOCAL_SRC_FILES := \
    decoding_encoding.c \

LOCAL_LDLIBS    := -lm -llog -ljnigraphics -L$(LOCAL_PATH)/android-8/armv5te/lib/ -lavcodec -lavfilter -lavutil -lm -lz
LOCAL_STATIC_LIBRARIES := avcodec avfilter avutil

include $(BUILD_SHARED_LIBRARY)

この make ファイルは ARM v5 CPU 用のライブラリのみをビルドします。ライブラリの ARM v7 ビルドを作成するには、Android.mk ファイルを変更する必要があります (armv5te から armv7a に変更)。make ファイルで 2 種類の CPU を指定して、両方の CPU のライブラリを 1 度にビルドできるようにするにはどうすればよいですか。前もって感謝します。

4

1 に答える 1

0

jni フォルダーで「Application.mk」を作成し、目的のターゲット アーキテクチャを追加します。次に例を示します。

APP_ABI := armeabi armeabi-v7a x86

次に、Android.mk を使用するように変更します: $(TARGET_ARCH_ABI) ここで、アーキテクチャがハードコーディングされています。

私はFFmpegで似たようなことをしています。さらに参照するためのリンクは次のとおりです。

http://sourceforge.net/p/servestream/code/1217/tree/trunk/jni/

他にご不明な点がありましたらお知らせください。

于 2012-11-30T16:42:59.957 に答える