最近开始研究openPGM实施,作为在我的家庭网络中实现可靠多播的解决方案。我已经下载了各种OpenPGM实现,甚至使用了环回示例。
然后我想看看openPGM如何与gstreamer一起工作。所以我从链接(http://code.google.com/p/openpgm/downloads/detail?name=gstpgm-2.0.4.tar.bz2&can=2&q=)下载了包含gsteamer插件的gstpgm zip,此时开始出现问题并开始运行。
当我使用默认的SConstruct运行scons时,我收到以下错误:
halford@ubuntu:~/gstp_heiher$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o libgstpgm.so -pipe -pthread -shared gstpgm.os gstpgmsrc.os gstpgmsink.os -lpgm -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0
/usr/bin/ld: cannot find -lpgm
collect2: ld returned 1 exit status
scons: *** [libgstpgm.so] Error 1
scons: building terminated because of errors.
当我在SConstruct文件中注释掉LIB = [libpgm]语句时,事物会编译,但是当我运行./smokesrc.sh脚本时,我收到以下错误:
halford@ubuntu:~/gstp_heiher$ scons
WARNING: erroneous pipeline: no element "pgmsink"
halford@ubuntu:~/gstp_heiher$ gedit SConstruct
halford@ubuntu:~/gstp_heiher$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o libgstpgm.so -pipe -pthread -shared gstpgm.os gstpgmsrc.os gstpgmsink.os -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0
scons: done building targets.
halford@ubuntu:~/gstp_heiher$ ./smokesrc.sh
(gst-plugin-scanner:3991): GStreamer-WARNING **: Failed to load plugin './libgstpgm.so': ./libgstpgm.so: undefined symbol: pgm_gsi_create_from_addr
(gst-plugin-scanner:3991): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstpgm.so': /usr/lib/gstreamer-0.10/libgstpgm.so: undefined symbol: g_thread_new
WARNING: erroneous pipeline: no element "pgmsink"
有人可以帮助我吗?
PS:我已将此消息传达给openPGM论坛,但没有回复。它似乎多年来一直处于非活动状态。
答案 0 :(得分:0)
似乎您需要安装libpgm的开发版本:sudo apt-get install libpgm-dev
并取消注释LIB=[libpgm]
。
答案 1 :(得分:0)
我最近完成了openPGM的裸构建,启用了标志和调试选项。 BUt我在ubuntu 12.04上有它,但也不应该与早期版本一样。
如果您不想更改代码中的任何内容,我建议您选择可用的包。 或者可以轻松地用scons构建.. 除非在Mac上运行,否则scons在没有对脚本进行任何更改的情况下工作正常。 Lemme知道你面临的错误(不要浪费时间解决与以前相同的问题)