在openwrt中移植了gmediarender,同时也配置了libffmpeg-custom。
libffmpeg-custom中包含了以下库:
define Package/libffmpeg-custom/install
$(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
$(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
裁剪掉了ffmpeg中的 libpostproc、libswscale、libavresample三个库。而Libffmpeg-full则包含了ffmpeg的所有库。
根据gmediarender的makefile可以看出,gmediarender依赖于Libffmpeg-full 库。此时,将gmediarender修改为依赖于库libffmpeg-custom。如下:
define Package/gmediarender
SECTION:=multimedia
CATEGORY:=Multimedia
# DEPENDS:=+libffmpeg-full +libupnp
DEPENDS:=+libffmpeg-custom +libupnp
TITLE:=A Headless UPnP Renderer
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。编译后出现以下问题: