zoukankan      html  css  js  c++  java
  • TinyXml——Linux下TinyXml的编译

    Linux下TinyXml的编译

    1.准备TinyXml源码包。    https://github.com/icebreaker/TinyXML.git

    2.修改Makefile文件,

      将其中的OUTPUT := xmltest一行修改为OUTPUT := libtinyxml.a

      将xmltest.cpp从SRCS:=tinyxml.cpp tinyxml-parser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中删除,

      注释掉xmltest.o:tinyxml.h tinystr.h。

      将${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}修改为

              ${AR} $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}。

    3.执行make命令编译,可在当前目录生成libtinyxml.a文件。

    Makefile

    #****************************************************************************
    #
    # Makefile for TinyXml test.
    # Lee Thomason
    # www.grinninglizard.com
    #
    # This is a GNU make (gmake) makefile
    #****************************************************************************
    
    # DEBUG can be set to YES to include debugging info, or NO otherwise
    DEBUG          := NO
    
    # PROFILE can be set to YES to include profiling info, or NO otherwise
    PROFILE        := NO
    
    # TINYXML_USE_STL can be used to turn on STL support. NO, then STL
    # will not be used. YES will include the STL files.
    TINYXML_USE_STL := NO
    
    #****************************************************************************
    
    CC     := gcc
    CXX    := g++
    LD     := g++
    AR     := ar rc
    RANLIB := ranlib
    
    DEBUG_CFLAGS     := -Wall -Wno-format -g -DDEBUG
    RELEASE_CFLAGS   := -Wall -Wno-unknown-pragmas -Wno-format -O3
    
    LIBS         :=
    
    DEBUG_CXXFLAGS   := ${DEBUG_CFLAGS} 
    RELEASE_CXXFLAGS := ${RELEASE_CFLAGS}
    
    DEBUG_LDFLAGS    := -g
    RELEASE_LDFLAGS  :=
    
    ifeq (YES, ${DEBUG})
       CFLAGS       := ${DEBUG_CFLAGS}
       CXXFLAGS     := ${DEBUG_CXXFLAGS}
       LDFLAGS      := ${DEBUG_LDFLAGS}
    else
       CFLAGS       := ${RELEASE_CFLAGS}
       CXXFLAGS     := ${RELEASE_CXXFLAGS}
       LDFLAGS      := ${RELEASE_LDFLAGS}
    endif
    
    ifeq (YES, ${PROFILE})
       CFLAGS   := ${CFLAGS} -pg -O3
       CXXFLAGS := ${CXXFLAGS} -pg -O3
       LDFLAGS  := ${LDFLAGS} -pg
    endif
    
    #****************************************************************************
    # Preprocessor directives
    #****************************************************************************
    
    ifeq (YES, ${TINYXML_USE_STL})
      DEFS := -DTIXML_USE_STL
    else
      DEFS :=
    endif
    
    #****************************************************************************
    # Include paths
    #****************************************************************************
    
    #INCS := -I/usr/include/g++-2 -I/usr/local/include
    INCS :=
    
    
    #****************************************************************************
    # Makefile code common to all platforms
    #****************************************************************************
    
    CFLAGS   := ${CFLAGS}   ${DEFS}
    CXXFLAGS := ${CXXFLAGS} ${DEFS}
    
    #****************************************************************************
    # Targets of the build
    #****************************************************************************
    
    # OUTPUT := xmltest
    OUTPUT := libtinyxml.a
    
    all: ${OUTPUT}
    
    
    #****************************************************************************
    # Source files
    #****************************************************************************
    
    # SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp
    SRCS := tinyxml.cpp tinyxmlparser.cpp tinyxmlerror.cpp tinystr.cpp
    
    # Add on the sources for libraries
    SRCS := ${SRCS}
    
    OBJS := $(addsuffix .o,$(basename ${SRCS}))
    
    #****************************************************************************
    # Output
    #****************************************************************************
    
    ${OUTPUT}: ${OBJS}
        ${AR} $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
        # ${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
    
    #****************************************************************************
    # common rules
    #****************************************************************************
    
    # Rules for compiling source files to object files
    %.o : %.cpp
        ${CXX} -c ${CXXFLAGS} ${INCS} $< -o $@
    
    %.o : %.c
        ${CC} -c ${CFLAGS} ${INCS} $< -o $@
    
    dist:
        bash makedistlinux
    
    clean:
        -rm -f core ${OBJS} ${OUTPUT}
    
    depend:
        #makedepend ${INCS} ${SRCS}
    
    tinyxml.o: tinyxml.h tinystr.h
    tinyxmlparser.o: tinyxml.h tinystr.h
    # xmltest.o: tinyxml.h tinystr.h
    tinyxmlerror.o: tinyxml.h tinystr.h
  • 相关阅读:
    ubuntu安装到选择位置时闪退
    linux下复制一个文件的内容到另一个文件
    ssh免密码登陆
    使用pymongo需要手动关闭MongoDB Connection吗?
    关于支付宝和微信使用的浏览器
    使用poi导出固定excel的模板,出现汉字不能自动设置行宽
    使用poi进行数据的导出Demo
    遍历map集合的方法
    用来遍历map集合的方法
    Idea中用来遍历list集合的快捷键
  • 原文地址:https://www.cnblogs.com/xingchong/p/15768734.html
Copyright © 2011-2022 走看看