2019独角兽企业重金招聘Python工程师标准>>>
一、下载 xml 软件包:tinyxml_2_6_2.zip
Tinyxml(轻量级 c++)下载地址:http://sourceforge.net/projects/tinyxml/?source=dlp
Tinyxml 压缩包里面其实有用的只有几个文件:
tinystr.cpp tinystr.h tinyxml.cpp tinyxmlerror.cpp tinyxml.h tinyxmlparser.cpp makefile
四个 cpp 文件和两个 h 头文件,以及一个 makefile 文件。
二、解压
#unzip tinyxml_2_6_2.zip
解压好后,进入解压目录
# cd tinyxml
编译
#make
最后讲生成如下信息:
Linux 下 tinyxml 学习 - danshiming - danshiming的博客
即产生 tinyxml 自带的测试程序,xmltest 可执行文件。在 tinyxml 目录下可以看见编译 成功的可执行文件 xmltest ,运行 xmltest 将会输出测试信息。
三、生成 tinyxml 动态库,修改 makefile 内容(仅列出修改部分)
#**************************************************************************
# Targets of the build
#**************************************************************************
OUTPUT := xmltest
LIB := libtinyxml.so #增加生成 libtinyxml.so 目标
all: ${OUTPUT} ${LIB}
#**************************************************************************
# Source files
#************************************************************************** SRCS := tinyxml.cpp
tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp
# Add on the sources for libraries
SRCS := ${SRCS}
OBJS := $(addsuffix .o,$(basename ${SRCS}))
LIBOBJS := tinyxml.o tinyxmlparser.o tinyxmlerror.o tinystr.o
#**************************************************************************
# Output
#**************************************************************************
${OUTPUT}: ${OBJS}
${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
${LIB}: ${LIBOBJS}
ar -r $@ ${LIBOBJS }
#**************************************************************************
# 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} ${LIB} ${TEST}
其中红色与蓝色 部分为添加部分,再一次执行 make 的时候,将在 tinyxml 目录下产生 一个动态库文件 libtinyxml.so。
嵌入式linux 编译方法:
首先修改 Makefile文件:
(1)将"CXX:=g++"改为"CXX:=arm-linux-g++ ""CC:=arm-linux-gcc "
"LD:=arm-linux-g++","RANLIB:=arm-linux-ranlib"即将编译器由g++改为交叉编译器;
(2) 将"OUTPUT:=xmltest"改为"OUTPUT:=libtinyxml.so",即将原来生成演示程序改为生成动态链接库libtinyxml.so;
(3)将xmltest.cpp从"SRCS:=tinyxml.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp"中删除,注释掉"xmltest.o:tinyxml.h tinystr.h"。因为不需要将演示程序添加到动态库中;
(4)在"${LD}-o$@${LDFLAGS)${OBJS}${LIBS}${EXTRA_LIBS}"语句的"${LD)"后添加
"-shared -fPIC",用于生成动态库。
修改完成后,执行make命令就可以在当前目录生成需要的动态链接库文件libtinyxml.so,也可以根据需要把TinyXml编译成静态库文件。把生成的libtinyxml.so文件拷贝到嵌入式系统下的/usr/lib即可,经过交叉编译源程序即可实现在嵌入式系统下解析xml文件