【发布时间】:2021-04-14 16:53:38
【问题描述】:
附上的代码是来自 GStreamer 官方网站的 Android.mk 文件,由 NDKBuild 构建。我目前完成了我的应用程序所需的所有功能,然后我才意识到现有的应用程序(我将从我开发的应用程序中实现该功能)是由 CMake 构建的,我在翻译 GStreamer 构建时遇到了困难文件从 Android.mk 到 CMakeList.txt。我知道这不是一个编码服务平台,但这是我项目的最后一步,我真的需要你的帮助。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := tutorial-3
LOCAL_SRC_FILES := tutorial-3.c dummy.cpp
LOCAL_SHARED_LIBRARIES := gstreamer_android
LOCAL_LDLIBS := -llog -landroid
include $(BUILD_SHARED_LIBRARY)
ifndef GSTREAMER_ROOT_ANDROID
$(error GSTREAMER_ROOT_ANDROID is not defined!)
endif
ifeq ($(TARGET_ARCH_ABI),armeabi)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm
else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7
else ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64
else ifeq ($(TARGET_ARCH_ABI),x86)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86
else ifeq ($(TARGET_ARCH_ABI),x86_64)
GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64
else
$(error Target arch ABI not supported: $(TARGET_ARCH_ABI))
endif
GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_SYS) $(GSTREAMER_PLUGINS_EFFECTS) $(GSTREAMER_PLUGINS_CODECS_RESTRICTED) $(GSTREAMER_PLUGINS_PLAYBACK) $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET)
GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 gobject-2.0
GSTREAMER_EXTRA_LIBS := -liconv
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk
【问题讨论】:
-
请更清楚您的需求,我可能会提供帮助。还可以查看 Gstreamer IRC 频道 irc.lc/freenode/gstreamer,您可以获得很多帮助。
-
我手头有 2 个不同的应用程序。一个现有的应用程序,我对 GStreamer for Android Official Page 的代码稍作修改。问题是,现有的应用程序 JNI 是用 CMake 构建的,但不是为 GStreamer 构建的,因为它是 NDKBuild。为了在现有应用程序中使用 GStreamer,我需要将 Android.mk 转换为 CMakeList.txt 中的部分内容,但我不知道该怎么做,甚至不知道它是否可行或是否可行。
-
Witch 平台是 CMake 代码,适用于 windows、linux 还是其他?
-
另外,我认为 gstreamer cmake 构建系统不再是标准构建,而是使用某种类型的 python 构建。我在工作中的大多数平台上都构建了 gstreamer,所以也许我可以提供帮助。如果我正确理解了这个问题,您有一个为 android 构建的应用程序,现在您想为另一个平台构建它?
-
Android Studio 中的 CMake。不,我的意思是,我有和现有的 Android 应用程序,但我希望实现 GStreamer 从 Raspberry Pi 到 Android 表面视图的流式传输功能。因此,为了防止我使现有应用程序不再可用,我首先尝试在另一个新应用程序上构建必要的功能。好吧,现在一切正常,是时候将所有功能从新应用程序转移回现有应用程序了,但只有我意识到现有应用程序使用 CMake 而不是 ndkbuild,我无法更改现有应用程序上的任何内容因为它是一个发布版本。