gpt4 book ai didi

c++ - 如何诊断加载 gstreamer 插件时出现的问题?

转载 作者:行者123 更新时间:2023-11-30 04:38:34 24 4
gpt4 key购买 nike

我创建了一个 gstreamer 插件,里面有一个元素,当放入管道时会生成一些数据(通过遵循 GStreamer Plugin Writer's Guide)。

我的问题是我无法在测试应用程序中加载我的插件。当我调用 gst_element_factory_make("myextractor", NULL) 时,结果始终为 NULL。

更多数据(我不确定这是否相关):

当我在我的 dll 上运行 gst-inspect 时,我得到不完整的输出(使用 cygwin 生成的输出):

beq11049@beqleuleu1nb028 /cygdrive/c/work
$ /cygdrive/c/OSSBuild/GStreamer/v0.10.6/bin/gst-inspect.exe MyProject/Release/gstxyzlibrary.dll
Plugin Details:
Name: myextractor
Description: XYZ Library
Filename: MyProject/Release/gstxyzlibrary.dll
Version: 1.0
License: LGPL
Source module: myextractor
Binary package: MyProject
Origin URL: http://www.example.com/

myextractor: XYZExtractor

1 features:
+-- 1 elements

如果我将它与 avisubtitle 插件(来自 GStreamer Good Plug-ins 包)进行比较,我得到的信息要少得多。

例如,我的插件说:

  1 features:
+-- 1 elements

avisubtitle 插件说(使用 $/cygdrive/c/OSSBuild/GStreamer/v0.10.6/bin/gst-inspect.exe avisubtitle 生成):

GObject
+----GstObject
+----GstElement
+----GstAviSubtitle

我的问题:我需要关于如何调试这个/确定我缺少什么的建议(启用调试输出、设置和检查路径等)。我的测试代码(对 gst_element_factory_make 的调用)是用 Songbird adon 编写的,但如果我将代码放在单独的可执行文件中,我会得到相同的结果。

最佳答案

可能是因为加载器找不到你的插件,你应该检查你的插件是否在共享库路径中:

确保您已将 LD_LIBRARY_PATH 环境变量设置为包含已编译插件的目录。

在 cygwin 中,将此添加到您的 .profile,或在运行程序之前运行它:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/cygdrive/c/path/to/your/plugin/"

您还可以使用 -L 链接器选项在编译时指定搜索路径。

关于c++ - 如何诊断加载 gstreamer 插件时出现的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3083758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com