2017-08-13 37 views
1

我最近尝试在我的OpenDDS C++项目中包含libxml2。如何在GNUMakefile上包含libxml2库

但是,我不知道如何将这个库包含在GNUMakefile中。

如何在这个GNUmake文件中包含libxml2?

另外,我试图像这样在GNUMakefile上添加命令。

LIB = /usr/local/xml/lib 

但是,仍然不起作用。

我GNUMakefile是在这里:

MAKEFILE   = GNUmakefile.DDS_Messenger_Publisher 
    DEPENDENCY_FILE = .depend.DDS_Messenger_Publisher 
    BIN_UNCHECKED = publisher 

    LIB_PREFIX  ?= lib 

    TAO_ROOT ?= $(ACE_ROOT)/TAO 

    FILES = \ 
     publisher.cpp \ 
     Writer.cpp 


    LIBPATHS := . "$(ACE_ROOT)/lib" "../../../lib" 

    #---------------------------------------------------------------------------- 
    #  Include macros and targets 
    #---------------------------------------------------------------------------- 
    LDLIBS = -lDDS_Messenger_Idl -lOpenDDS_Shmem -lOpenDDS_Rtps_Udp -lOpenDDS_Rtps -lOpenDDS_Multicast -lOpenDDS_Udp -lOpenDDS_Tcp -lOpenDDS_InfoRepoDiscovery -lOpenDDS_Dcps -lTAO_BiDirGIOP -lTAO_PI -lTAO_CodecFactory -lTAO_PortableServer -lTAO_AnyTypeCode -lTAO -lACE 
    TAO_IDL = $(ACE_ROOT)/bin/tao_idl 
    TAO_IDL_DEP = $(ACE_ROOT)/bin/tao_idl$(EXEEXT) 
    TAO_IDLFLAGS = -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT)$(if $(ARCH), -g $(call ADD_QUOTE,$(call ADD_ARCH,$(ACE_ROOT)/bin/ace_gperf))) 

    PRJ_TYPE = rtp 

    ifeq ($(INSBIN),.) 
     ifeq ($(CURDIR),) 
     ifeq ($(PWD),) 
      PWD=$(shell pwd) 
     endif 
     else 
     PWD=$(CURDIR) 
     endif 
     INSBIN = $(PWD) 
    endif 
    OUTPUT_DIRECTORY = $(if $(ARCH),./$(ARCH)) 

    include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU 

    include $(DDS_ROOT)/rules.dds.GNU 

    include $(TAO_ROOT)/rules.tao.GNU 
... 
... 
+0

参见[libxml2的FAQ](http://xmlsoft.org/FAQ.html#Developer)。如果你的系统可用,'pkg-config'可能会给出更好的结果。 – nwellnhof

回答

1

我终于解决了这个问题。

刚添加

LIBXML_ROOT ?= /usr/local/xml

LDLIBS = -lDDS_Messenger_Idl -lOpenDDS_Shmem ... -L$(LIBXML_ROOT)/lib -lxml2 
... 
CPPFLAGS  += -I$(ACE_ROOT) -I$(TAO_ROOT) -I../../.. -I$(LIBXML_ROOT)/include/libxml2 
+0

另一种方法是将基础项目添加到MPC for libxml2(如https://github.com/DOCGroup/MPC/blob/master/config/zzip.mpb),并使用此依赖项更新MPC文件。 –