编译gstreamer插件新发现和libtool的新认识
来源:互联网 发布:javascript在线看 编辑:程序博客网 时间:2024/05/23 19:53
由于在嵌入式系统中运行gstreamer,受到资源的限制,所以打算只安装gstreamer核心库和一些必须的element,其它的element用到的时候再添加。我的想法是,把base,good,。。。插件包中的需要用到的elment编译成插件。
拿good插件包中的id3demux做试验(先在pc上试验,可惜pc上已经装了base插件包),把good插件包中的gst/id3demux目录下的5个文件copy到gst-template/gst-plugin/src目录下,用上一篇文章《编译自己的gstreamer插件》中提到的方法编译,郁闷,没通过,有空再研究一下(linux基本知识还很欠缺啊。。。)。
后来我想,既然gstreamer的插件是动态链接库,那么只是把这些源文件编译成动态链接库是否可以呢?试一下:
gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) -DPACKAGE='"GStreamer"' -Wimplicit -fpic -shared -g -o gstid3demux.so gstid3demux.c id3tags.c id3v2frames.c
把编译出来的gstid3demux.so拷贝到gstreamer库目录下,写个应用程序调用一下,OK,没问题。再用gst-template的工具生成一个myfilter,用同样的方法:
gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) -DPACKAGE='"GStreamer"' -DVERSION='"0.10.23"' -Wimplicit -fpic -shared -g -o gstmyfilter.so gstmyfilter.c
把编译出来的gstmyfilter.so拷贝到gstreamer库目录下,调用成功。
原来,只需要把你element编译成动态连接库就可以了。
原来对于有多个源文件的element,libtool需要对每个文件分别编译,以id3demux为例:
#libtool --mode=compile gcc `pkg-config --cflags gstreamer-0.10` -DPACKAGE='"GStreamer"' -DHAVE_USER_MTU -Wall -Wimplicit -g -c gstid3demux.c
#libtool --mode=compile gcc `pkg-config --cflags gstreamer-0.10` -DPACKAGE='"GStreamer"' -DHAVE_USER_MTU -Wall -Wimplicit -g -c id3tag.c
#libtool --mode=compile gcc `pkg-config --cflags gstreamer-0.10` -DPACKAGE='"GStreamer"' -DHAVE_USER_MTU -Wall -Wimplicit -g -c id3v2frame.c
然后再link:
#libtool --mode=link gcc -module -avoid-version -rpath /usr/local/lib/gstreamer-0.10/ -export-symbols-regex gst_plugin_desc -o gstid3demux.la gstid3demux.lo id3tag.lo id3v2frame.lo `pkg-config --libs gstreamer-0.10`
之后,再安装,搞定。
- 编译gstreamer插件新发现和libtool的新认识
- 编译自己的gstreamer插件
- rygel和gstreamer调用插件的问题
- gstreamer ugly插件x264enc不能编译的原因
- gstreamer拥有的插件
- gstreamer播放器,playbin2插件使用,适合新来gstreamer
- libtool编译
- libtool编译
- libtool的功能和用法
- 创建gstreamer插件的过程
- Gstreamer的playbin2 插件分析
- 对模板新的理解 ----- 模板和虚函数结合使用的新发现
- 交叉编译中libtool相关的问题
- 避免交叉编译时,libtool 的雷区
- gstreamer插件
- 编译gstreamer
- 全志在编译时出现的error: Libtool library used but 'LIBTOOL' is undefined解决方案
- dreamweaver新发现和我的错误
- STL源码剖析
- android数据库操作
- 输出杨辉三角 队列小应用
- 你的人生,就是从这一刻开始毁掉的
- ubuntu下安装mysql
- 编译gstreamer插件新发现和libtool的新认识
- exOsip Register 心跳处理
- 一.宏定义(2) --# 、#@ 和## 操作等
- PV、UV、点击量
- 路上看水
- STL源码剖析总结
- 在VC中更改可执行程序的图标
- linux一些问题解决方法的收集
- 线程池服务程序设计