交叉编译libupnp
交叉编译libupnp
1.从Makeconfig中拿到CFLAGS,LDFLAGS等编译参数,执行./configure 然后再make,make install。
2.拷贝编译出来的动态库和静态库到lib_release下对应的文件夹中,编译出来的库的路径在./configure –prefix=”路径”下。
3.在system/project/TV010XX/Makefile中添加编译选项,并指定头文件和库文件的路径,由于目标机并没有对应的动态链接库所以添加选项-static。如下:
INCLUDES += -I../../open_source/libupnp/libupnp-1.6.20/install/include/upnpLIBS += -L../../lib_release/prebuilt_$(TOOLCHAIN_VER)#LIBS += -L../../open_source/libupnp/libupnp-1.6.20/install/libLDFLAGS += -Wl,-rpath,../../lib_release/prebuilt_$(TOOLCHAIN_VER)LIBS += -lthreadutilLIBS += -lixmlLIBS += -lupnpLDFLAGS += -static
4.调用upnp,只需要在文件头添加#include "upnp.h"即可,经测试可正常运行。
5.具体Makefile,和preconf.sh。
include ../../include/MakeConfigLIBUPNPDIR=libupnp-1.6.20CURRENT_FOLDER=$(shell pwd)MYNM=$(TOOLCHAIN_ROOT)/$(HOST)-nmMYCFLAGS = $(TOOLCHAIN_DIR)/includeMYLDFLAGS = $(TOOLCHAIN_DIR)/liball:cd $(LIBUPNPDIR); $(SH) CC_TOOLCHAIN=$(_CC) CXX_TOOLCHAIN=$(_CXX) RANLIB_TOOLCHAIN=$(MYRANLIB) LD_TOOLCHAIN=$(MYLD) STRIP_TOOLCHAIN=$(MYSTRIP) AR_TOOLCHAIN=$(MYAR) NM_TOOLCHAIN=$(MYNM) CFLAGS_TOOLCHAIN=$(MYCFLAGS) LDFLAGS_TOOLCHAIN=$(MYLDFLAGS) MYPREFIX=$(CURRENT_FOLDER)/$(LIBUPNPDIR)/install ../preconf.sh $(HOST) ;$(MAKE);$(MAKE) installcp -fd $(LIBUPNPDIR)/install/lib/lib* ../../lib_release/prebuilt_$(TOOLCHAIN_VER)#cp $(LIBUPNPDIR)/upnp/inc/*.h $(LIBUPNPDIR)/ixml/inc/*.h $(LIBUPNPDIR)/threadutil/inc/*.h ../../project/TV010_EuroDVBclean:cd $(LIBUPNPDIR);$(MAKE) clean
#!/bin/shecho "--------- CURL BUILD ENVIREMENT ----------"echo "CC : $CC_TOOLCHAIN"echo "CXX : $CXX_TOOLCHAIN"echo "LD : $LD_TOOLCHAIN"echo "RANLIB : $RANLIB_TOOLCHAIN"echo "STRIP : $STRIP_TOOLCHAIN"echo "AR : $AR_TOOLCHAIN"echo "NM : $NM_TOOLCHAIN"echo "CFLAGS: $CFLAGS_TOOLCHAIN"echo "LDFLAGS: $LDFLAGS_TOOLCHAIN"echo "HOSTNAME: $1"echo "prefix: $MYPREFIX"echo "------------------------------------------"export RANLIB=$RANLIB_TOOLCHAINexport CC=$CC_TOOLCHAINexport CXX=$CXX_TOOLCHAINexport AR=$AR_TOOLCHAINexport LD=$LD_TOOLCHAINexport STRIP=$STRIP_TOOLCHAINexport NM=$NM_TOOLCHAIN./configure --host=$1 --prefix=$MYPREFIX

浙公网安备 33010602011771号