2017-08-13 2 views
1

J'ai récemment essayé d'inclure libxml2 dans mon projet OpenDDS C++. Mais, je ne sais pas comment inclure cette bibliothèque sur GNUMakefile.Comment inclure la bibliothèque libxml2 sur GNUMakefile

Comment puis-je inclure libxml2 sur ce fichier GNUmake?

En outre, j'ai essayé d'ajouter une commande sur GNUMakefile comme ceci.

LIB = /usr/local/xml/lib 

Mais, ne fonctionne toujours pas.

Mon GNUMakefile est ici:

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

Voir la [FAQ libxml2] (http://xmlsoft.org/FAQ.html#Developer). Si disponible sur votre système, 'pkg-config' pourrait donner de meilleurs résultats. – nwellnhof

Répondre

1

J'ai finalement résolu ce problème.

vient d'ajouter

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

Une autre option consiste à ajouter un projet de base à MPC pour libxml2 (comme https://github.com/DOCGroup/MPC/blob/master/config/zzip.mpb) et de mettre à jour le fichier MPC avec cette dépendance. –