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

How include c++ binary in gstreamer plugin?

本文关键字:包含 c++ 二进制文件 插件 gstreamer      更新时间:2023-10-16

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

GStreamer-WARNING **:加载插件失败"/usr/地方/lib/gstreamer - 1.0/libgstmykodoenc.so":/usr/local/lib/gstreamer - 1.0/libgstmykodoenc。所以:未定义符号:_ZTVN10__cxxabiv117__class_type_infoE

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

当运行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

我解决了在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