如何在gstreamer插件中包含c ++二进制文件?

时间:2016-11-02 15:38:16

标签: c++ gstreamer

我正在尝试开发一个包含KODO线性网络编码的gstreamer插件。 Kodo是一个二进制文件c ++。在创建和填充autogen.sh make和sudo make install时没有检测到任何错误。当我运行gst-inspect mykodoenc时,结果是:

  

GStreamer-WARNING **:无法加载插件   ' /usr/local/lib/gstreamer-1.0/libgstmykodoenc.so' ;:   /usr/local/lib/gstreamer-1.0/libgstmykodoenc.so:undefined symbol:   _ZTVN10__cxxabiv117__class_type_infoE

如何在我的gstreamer插件中包含c ++二进制模块?

2 个答案:

答案 0 :(得分:0)

运行gst-inspect时,二进制文件无法在运行时找到所需的c ++符号,因此需要将LD_LIBRARY_PATH设置为指向libstdc ++共享库。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libstdc++.so.6

libstdc ++版本也应该与您提到的kodo二进制文件所期望的版本相同。您可以使用

进行检查
ldd <kodo_binary>

另外,要检查其他缺少的依赖项,请使用

ldd /usr/local/lib/gstreamer-1.0/libgstmykodoenc.so

答案 1 :(得分:0)

我解决了在makefile中的正确位置添加-lstdc ++。

libgstmykododec_la_SOURCES = gstmykododec.c gstmykododec.h kodoc.h

libgstmykododec_la_CFLAGS = $(GST_CFLAGS)-I。/ kodolib / include

libgstmykododec_la_LIBADD = $(GST_LIBS)-L./kodolib -lkodoc_static -lfifi -lcpuid -lstdc ++

libgstmykododec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)-Wl,-Bdynamic -lm

libgstmykododec_la_LIBTOOLFLAGS = --tag = disable-static