修改gmediarender对于ffmpeg的依赖库
来源:互联网 发布:ubuntu 优麒麟 编辑:程序博客网 时间:2024/06/05 17:12
$(INSTALL_DIR) $(1)/usr/lib
$(STRIP) $(PKG_INSTALL_DIR)/usr/lib/lib{swresample,avfilter,avdevice,avformat,avcodec,avutil}.so.*
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{swresample,avfilter,avdevice,avformat,avcodec,avutil}.so.* $(1)/usr/lib/
endef
SECTION:=multimedia
CATEGORY:=Multimedia
# DEPENDS:=+libffmpeg-full +libupnp
DEPENDS:=+libffmpeg-custom +libupnp
TITLE:=A Headless UPnP Renderer
endef
修改gmediarender的makefile,使其依赖于libffmpeg-custom,而不是libffmpeg-full。编译后出现以下问题:
Package gmediarender is missing dependencies for the following libraries:
libswscale.so.4
说明gmediarender依赖于libswscale库。而gmediarender现在依赖的libffmpeg-custom已经把Libswscale库去掉了,所以会报这个错。可以查看,gmediarender在哪里填写了需要libswscale库。
查找openwrt/package/gmediarender下的makefile,里面并没有涉及到Libswscale;查看gmediarender源码中makefile,发现源码中并没有makefile文件,只有configure.ac与makefile.am文件,说明gmediarender的源码makefile文件,是由configure.ac自动产生的,即gmediarender是通过源码中的configure.ac文件生成configure,再通过configure 产生makefile.
源码里的configure.ac文件拷贝到编译路径(build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/)进行编译 ,所以需要修改源码里的configure.ac而不是编译路径里的configure.ac。
查看gmediarender源码里的configure.ac,可以看到有
PKG_CHECK_MODULES(LIBFFMPEG, libavdevice libavformat libavfilter libavcodec libswresample libswscale libavutil, HAVE_LIBFFMPEG=yes, HAVE_LIBFFMPEG=no),
说明这里定义的LIBFFMEPG中包含了libswscale库。这样在编译路径中产生的makefile中就包含了Libswscale:
LIBFFMPEG_CFLAGS = -I/home/yangjie/wifi-project/openwrt_widora/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include
LIBFFMPEG_LIBS = -L/home/yangjie/wifi-project/openwrt_widora/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/lib -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil.
修改openwrt/package/gmediarender中的configure.ac,去掉libswscale
PKG_CHECK_MODULES(LIBFFMPEG, libavdevice libavformat libavfilter libavcodec libswresample libavutil, HAVE_LIBFFMPEG=yes, HAVE_LIBFFMPEG=no)
再编译,则在编译路径下产生的makefile中则不包含libswscale
LIBFFMPEG_CFLAGS = -I/home/yangjie/wifi-project/openwrt_widora/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include
LIBFFMPEG_LIBS = -L/home/yangjie/wifi-project/openwrt_widora/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/lib -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lavutil
再编译openwrt,此时gmediarender编译通过,且不包含libswscale了。
附:
openwrt中移植相关程序,则包含两个makefile。
一个openwrt的,一个对应程序源码的。
其中,openwrt的makefile,基本上有相关的格式,这个可以查看 http://blog.csdn.net/teddy99999/article/details/17203501 (openwrt 添加模块(一)Makefile和config.in),包含程序源码地址来源、程序在menuconfig中的配置情况、是否有配置子目录、程序依赖库以及程序安装情况。
第二个makefile,对应于源码编译相关。这部分有待深入研究。涉及到autoconfig\automake、configure.ac\makefile.am相关知识。
(此次,gmediarender中,依赖于库libswscale。而openwrt的gmediarender的makefile中,并没有相关libswscale链接;所以查看gmediarender源码中makefile是否有libswscale链接,源码makefile又涉及到configure.ac相关,如此查找下去进行定位与修改。)
- 修改gmediarender对于ffmpeg的依赖库
- 修改ecb 2.4对于cedet 1.0的依赖
- 对于IOC依赖注入的理解
- 对于依赖注入的初步理解
- Linux系统安装FFmpeg以及依赖库
- Linux下编译ffmpeg及其依赖库
- linux下修改程序的默认依赖库搜索路径
- ffmpeg error LNK2026: 模块对于 SAFESEH 映像是不安全的
- vlc的第三方库contrib的修改之二:ffmpeg的库的修改
- vlc-2.1.0的第三方库contrib的修改之ffmpeg的库的修改
- Spring依赖注入对于Date类型数据的处理
- Androids中的System.loadLibrary对于依赖so的加载分析
- gradle依赖中对于版本控制的统一管理
- mysql 对于表结构的修改
- 对于母版页的一些修改
- 对于android2.3源代码的相关修改
- 对于新版Cocoapods文件写法的修改
- ffmpeg-2.1 最新修改的一部分函数
- 2017.2.21考试总结
- css基础及css选择符
- 开博第一帖
- 二零一七一月二十一日小测试
- Unfair Poll
- 修改gmediarender对于ffmpeg的依赖库
- P2P内网穿透原理
- [C语言]除非该数组为全局变量,否则只能在定义数组时获取数组长度,在传递过程中只是传递指针不能再次获取长度
- pat-bl-1047
- Hexo搭建个人博客教程
- 微信小程序 例子
- 开源连接池比较
- shell传递参数
- 多版本并发控制MVCC