Tinyxml的嵌入式Linux实现

2019-07-12 20:21发布

转自:http://blog.csdn.net/suoluoji/article/details/7312676

Tinyxml的嵌入式Linux实现

    这两天项目需要在嵌入式Linux系统上实现Tinyxml解析简单的xml文件,于是在网上查找并收集了一点资料,现在补充完善!

一、源码下载:

https://github.com/xant/XML-TinyXML http://sourceforge.net/projects/tinyxml/ 版本:tinyxml_2_6_2.zip

二、动态链接库的实现

首先修改 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",用于生成动态库。 修改完成后,执行make命令就可以在当前目录生成需要的动态链接库文件libtinyxml.so,也可以根据需要把TinyXml编译成静态库文件。把生成的libtinyxml.so文件拷贝到嵌入式系统下的/usr/lib即可,经过交叉编译源程序即可实现在嵌入式系统下解析xml文件

三、静态链接库的实现

修改Makefile文件 (1)、同上动态链接库; (2)、将"OUTPUT:=xmltest"改为"OUTPUT:=libtinyxml.a",即将原来生成演示程序改为生成静态链接库libtinyxml.a; (3)、同上 (4)、将"${LD}-o$@${LDFLAGS)${OBJS}${LIBS}${EXTRA_LIBS}"改为"${AR}$@    ${LDFLAGS)  ${OBJS} ${LIBS}    ${EXTRA_LIBS}" 修改完成后,执行make命令就可以在当前目录生成需要的静态链接库文件libtinyxml.a,也可以根据需要把TinyXml编译成静态库文件。静态链接库只在编译时加入至编译命令即可,amr-linux-g++ test –static –o test.cpp ./libtinyxml.a ,即可生成test文件,有用是静态编译,生成可执行文件较大,拷贝到嵌入式系统中即可。   后记:在移植Tinyxml过程中,发现对shell指令不熟悉,没有区分好空格和tab键导致出错,后来在交叉编译静态链接库时,没有加入-static选项,生成可执行文件后无法运行出错,出错,都是需要不断积累的。  

四、参考文献

引文:《基于TinyXml的嵌入式Linux》 链接:http://www.eepw.com.cn/article/67219.htm