编译gstreamer依赖glib、libxml2等。glib又依赖zlib、libffi。。。。各种依赖关系,让人在编译的过程中很容易忘记自己下一步要编哪个库。个人觉得自己写个简单的Makefile可以记录编译过程,理清依赖关系,解决遗忘问题。点此下载gstreamer及其依赖的各种库的源码。废话不说了,上代码:
MAKE:=make -w PWD:=$(shell pwd) #PATH := 自己的环境变量(在PC或虚拟机上执行export可以看到) CROSS_COMPILE :=自己的路径/mips-gcc472-glibc216-32bit/bin/mips-linux-gnu-gcc SYSROOT := 自己的路径/mips-gcc472-glibc216-32bit/mips-linux-gnu/libc GST_RTSP_DIR=$(shell pwd)/gst-rtsp-0.10.8 GST_PLUGINS_BASE=$(shell pwd)/gst-plugins-base-0.10.36 LIB_XML_DIR=$(shell pwd)/libxml2-2.9.1 GLIB_DIR=$(shell pwd)/glib-2.40.0 ZLIB_DIR=$(shell pwd)/zlib-1.2.8 LIBFFI_DIR=$(shell pwd)/libffi-3.0.13 GETTEXT_DIR=$(shell pwd)/gettext-0.19.8.1 GSTREAMER_DIR=$(shell pwd)/gstreamer-0.10.36 LIBOGG_DIR=$(shell pwd)/libogg-1.3.3 LIBVORBIS_DIR=$(shell pwd)/libvorbis-1.3.6 gstreamer: if [ ! -f $(GSTREAMER_DIR)/config.log ];then cd $(GSTREAMER_DIR) && ./configure --build=i686-pc-linux-gnu --host=mips-linux-gnu --prefix=$(SYSROOT)/usr PKG_CONFIG_PATH=$(SYSROOT)/usr/lib/pkgconfig CC=$(CROSS_COMPILE) --enable-net;fi $(MAKE) -C $(GSTREAMER_DIR) $(MAKE) -C $(GSTREAMER_DIR) install libxml: if [ ! -f $(LIB_XML_DIR)/config.log ];then cd $(LIB_XML_DIR) && ./configure --build=i686-pc-linux-gnu --host=mips-linux-gnu --prefix=$(SYSROOT)/usr CC=$(CROSS_COMPILE) --without-python;fi $(MAKE) -C $(LIB_XML_DIR) $(MAKE) -C $(LIB_XML_DIR) install zlib: if [ ! -f $(ZLIB_DIR)/config.log ];then cd $(ZLIB_DIR) && ./configure --prefix=$(SYSROOT)/usr;fi $(MAKE) -C $(ZLIB_DIR) CC=mips-linux-gnu-gcc $(MAKE) -C $(ZLIB_DIR) install libffi: if [ ! -f $(LIBFFI_DIR)/config.log ];then cd $(LIBFFI_DIR) && ./configure --host=mips-linux-gnu --prefix=$(SYSROOT)/usr;fi $(MAKE) -C $(LIBFFI_DIR) $(MAKE) -C $(LIBFFI_DIR) install glib: if [ ! -f $(GLIB_DIR)/config.log ];then cd $(GLIB_DIR) && ./configure --host=mips-linux-gnu --prefix=$(SYSROOT)/usr PKG_CONFIG_PATH=$(SYSROOT)/usr/lib/pkgconfig glib_cv_stack_grows=no glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes;fi $(MAKE) -C $(GLIB_DIR) $(MAKE) -C $(GLIB_DIR) install