繁体   English   中英

在另一个NDK库项目中包括一个预先构建的静态/共享NDK库

[英]Including a prebuilt static/shared NDK lib, inside another NDK lib project

所以我想做的是:

  1. 为NDK用C ++构建一个渲染插件(将其传递给位图+ textureID,并在纹理上渲染位图)。 这很好。

  2. 将渲染插件添加到使用ffmpeg解码视频的C(用于NDK)项目中,视频的每一帧都将传递到渲染插件进行显示。

我可以将渲染插件构建到C项目中,并将相关文件移动到Obj/local/libs/目录(我已经尝试过渲染器的静态和共享构建)。 但是我无法将其包含在实际的C代码中。

该目录如下所示:

目录结构

当我尝试向我的代码中添加#include <renderplugin.h>时,它不会链接, #include <renderplugin.h> file or directory could not be found

我在jni文件夹中的Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := NativeMediaPlayer
LOCAL_SRC_FILES := NativeMediaPlayer.c
LOCAL_LDLIBS := -llog -lz -lGLESv2
LOCAL_SHARED_LIBRARIES := libavformat libavcodec libavutil liblog libswscale NativeRenderPlugin

include $(BUILD_SHARED_LIBRARY)
#ffmpeg
$(call import-add-path, ../)
$(call import-module, NativeMediaPlayer/external)
#render plugin
$(call import-add-path, jni)
$(call import-module, prebuilt)

插件位于prebuilt文件夹中的Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libNativeRenderPlugin
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/lib/libNativeRenderPlugin.so
LOCAL_EXPORT_C_INCLUDES += $(TARGET_ARCH_ABI)/include
include $(PREBUILT_SHARED_LIBRARY)

看起来这与库的放置有关,将它们移至与ffmpeg库相同的文件夹(并更新了makefile)之后,include现在可以正常工作了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM