我正在尝试开发一个gstreamer插件,其中包括KODO线性网络编码。Kodo是二进制文件c++。在创建和填充autogen.sh时,make和sudo make不会检测到任何错误。当我运行gst检查mykodoenc时,结果是:
警告**:未能加载插件'/usr/local/lib/gstreamer-1.0/libgstmykodoenc.so':/usr/local/lib/gstreamer-1.0/libgstmykodoenc.so:未定义符号:_ZTVN10__cxxabiv117__class_type_infoE
如何在我的gstreamer插件中包括c++二进制模块?
发布于 2016-11-03 08:23:04
运行gst时,检查二进制文件无法找到运行时所需的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发布于 2016-11-07 08:55:11
我解决了在makefile中正确的位置添加-lstdc++的问题。
libgstmykododec_la_SOURCES = gstmykododec.c gstmykododec.h kodoc.hlibgstmykododec_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 =--标记=禁用-静态
https://stackoverflow.com/questions/40383979
复制相似问题