Gra*_*ral 6 static-libraries gstreamer
我正在为使用 GStreamer 0.10.36 的嵌入式系统开发软件。我的目标是使软件在闪存空间方面尽可能小,因此我想静态链接我需要的 GStreamer 插件。根据核心参考手册:
“有一些选项可以将插件静态链接到应用程序,甚至可以在没有插件存储库的情况下使用 GStreamer,在这种情况下,可能需要 gst_plugin_load() 将插件加载到内存中。”
不幸的是,我不清楚需要做什么才能将插件放入内存以便后续调用gst_element_factory_make()成功完成。
我正在执行以下操作:
--enable-static使用和设置构建 GStreamer --disable-registry。gst_element_factory_make()创建元素现在我只对多个插件中的一个(tcpclientsink)进行此操作作为实验。我必须编辑该插件的 Makefile 以删除一条--disable-static语句来构建 libgsttcp.a 文件。我认为这个库很好,但我不确定是否有一个好的方法来验证这一点。  gst-inspect似乎不适用于静态库。
注意:如果我调用load_gst_plugin(/path/to/libgsttcp.a),GStreamer 由于 ELF 标头无效而无法加载插件。
如何加载静态链接的 GStreamer 库?
在 GStreamer 开发人员的帮助下,我找到了答案......不要使用版本 0.10.36。:)
基本上,构建静态插件库的能力是在以后的版本中添加/修复的。为了让它在 0.10.36 中工作,我必须将 GStreamer SDK 和 GStreamer 1.x 的端口更改恢复到 0.10.36。事情仍在进行中,但我能够建立libgstcoreelements.一个静态链接。如果我没有构建 0.10.36 的修改版本,我可能只会使用 SDK。
更新
我创建了我正在使用的所有库的静态版本。我的 GStreamer 库现在是 0.10.36、SDK 和 1.2.2 的混合体,但它可以工作。但我不会向任何人推荐这个解决方案。使用 SDK 或版本 1.x。
| 归档时间: | 
 | 
| 查看次数: | 5960 次 | 
| 最近记录: |