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 构建库。提前致谢。

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 回答