交叉编译libupnp 1.从Makeconfig中拿到CFLAGS,LDFLAGS等编译参数,执行./configure 然后再make,make install。
2.拷贝编译出来的动态库和静态库到lib_release下对应的文件夹中,编译出来的库的路径在./configure –prefix=”路径”下。
3.在system/project/TV010XX/Makefile中添加编译选项,并指定头文件和库文件的路径,由于目标机并没有对应的动态链接库所以添加选项-static。如下:
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/upnp
LIBS += -L../../lib_release/prebuilt_$(TOOLCHAIN_VER)
#LIBS += -L../../open_source/libupnp/libupnp-1.6.20/install/lib
LDFLAGS += -Wl,-rpath,../../lib_release/prebuilt_$(TOOLCHAIN_VER)
LIBS += -lthreadutil
LIBS += -lixml
LIBS += -lupnp
LDFLAGS += -static
4.调用upnp,只需要在文件头添加#include "upnp.h"即可,经测试可正常运行。
5.具体Makefile,和preconf.sh。
include ../../include/MakeConfig
LIBUPNPDIR=libupnp-1.6.20
CURRENT_FOLDER=$(shell pwd)
MYNM=$(TOOLCHAIN_ROOT)/$(HOST)-nm
MYCFLAGS = $(TOOLCHAIN_DIR)/include
MYLDFLAGS = $(TOOLCHAIN_DIR)/lib
all:
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) install
cp -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_EuroDVB
clean:
cd $(LIBUPNPDIR);$(MAKE) clean
#!/bin/sh
echo "--------- 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_TOOLCHAIN
export CC=$CC_TOOLCHAIN
export CXX=$CXX_TOOLCHAIN
export AR=$AR_TOOLCHAIN
export LD=$LD_TOOLCHAIN
export STRIP=$STRIP_TOOLCHAIN
export NM=$NM_TOOLCHAIN
./configure --host=$1 --prefix=$MYPREFIX
null