交叉编译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




posted @ 2017-02-13 16:41  陈溜溜  阅读(1879)  评论(0编辑  收藏  举报