交叉编译libupnp

交叉编译libupnp

1.从Makeconfig中拿到CFLAGS,LDFLAGS等编译参数,执行./configure 然后再make,make install。
2.拷贝编译出来的动态库和静态库到lib_release下对应的文件夹中,编译出来的库的路径在./configure –prefix=”路径”下。
3.在system/project/TV010XX/Makefile中添加编译选项,并指定头文件和库文件的路径,由于目标机并没有对应的动态链接库所以添加选项-static。如下:

 
 
  1. INCLUDES += -I../../open_source/libupnp/libupnp-1.6.20/install/include/upnp
  2. LIBS += -L../../lib_release/prebuilt_$(TOOLCHAIN_VER)
  3. #LIBS += -L../../open_source/libupnp/libupnp-1.6.20/install/lib
  4. LDFLAGS += -Wl,-rpath,../../lib_release/prebuilt_$(TOOLCHAIN_VER)
  5. LIBS += -lthreadutil
  6. LIBS += -lixml
  7. LIBS += -lupnp
  8. LDFLAGS += -static

4.调用upnp,只需要在文件头添加#include "upnp.h"即可,经测试可正常运行。

5.具体Makefile,和preconf.sh。

 
 
  1. include ../../include/MakeConfig
  2. LIBUPNPDIR=libupnp-1.6.20
  3. CURRENT_FOLDER=$(shell pwd)
  4. MYNM=$(TOOLCHAIN_ROOT)/$(HOST)-nm
  5. MYCFLAGS = $(TOOLCHAIN_DIR)/include
  6. MYLDFLAGS = $(TOOLCHAIN_DIR)/lib
  7. all:
  8. 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
  9. cp -fd $(LIBUPNPDIR)/install/lib/lib* ../../lib_release/prebuilt_$(TOOLCHAIN_VER)
  10. #cp $(LIBUPNPDIR)/upnp/inc/*.h $(LIBUPNPDIR)/ixml/inc/*.h $(LIBUPNPDIR)/threadutil/inc/*.h ../../project/TV010_EuroDVB
  11. clean:
  12. cd $(LIBUPNPDIR);$(MAKE) clean
 
 
  1. #!/bin/sh
  2. echo "--------- CURL BUILD ENVIREMENT ----------"
  3. echo "CC : $CC_TOOLCHAIN"
  4. echo "CXX : $CXX_TOOLCHAIN"
  5. echo "LD : $LD_TOOLCHAIN"
  6. echo "RANLIB : $RANLIB_TOOLCHAIN"
  7. echo "STRIP : $STRIP_TOOLCHAIN"
  8. echo "AR : $AR_TOOLCHAIN"
  9. echo "NM : $NM_TOOLCHAIN"
  10. echo "CFLAGS: $CFLAGS_TOOLCHAIN"
  11. echo "LDFLAGS: $LDFLAGS_TOOLCHAIN"
  12. echo "HOSTNAME: $1"
  13. echo "prefix: $MYPREFIX"
  14. echo "------------------------------------------"
  15. export RANLIB=$RANLIB_TOOLCHAIN
  16. export CC=$CC_TOOLCHAIN
  17. export CXX=$CXX_TOOLCHAIN
  18. export AR=$AR_TOOLCHAIN
  19. export LD=$LD_TOOLCHAIN
  20. export STRIP=$STRIP_TOOLCHAIN
  21. export NM=$NM_TOOLCHAIN
  22. ./configure --host=$1 --prefix=$MYPREFIX




转载于:https://www.cnblogs.com/iceiceiceice/p/66014eed7ef07aec622969cd1043191e.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值