文档章节

linux下编译tinyxml输出libtinyxml.so

刘大神
 刘大神
发布于 2016/05/26 07:51
字数 544
阅读 137
收藏 0

一、下载 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文件

© 著作权归作者所有

刘大神
粉丝 8
博文 21
码字总数 18133
作品 0
朝阳
高级程序员
私信 提问
C++ 使用TinyXML解析XML文件

读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便...

LoSingSang
2018/07/17
0
0
TinyXML:一个优秀的C++ XML解析器

读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解...

zmldndx
2013/10/10
0
0
C++ XML 解析器:tinyxml

[tinyxml2]: http://www.grinninglizard.com/tinyxml2/index.html C++ XML 解析器:[tinyxml][tinyxml2] 1) [TinyXML-2][tinyxml2] 一个简单,轻量,高效的C++ XML 解析器,能够很容易得整合......

加壹
2014/04/24
0
0
TinyXml 读写XML文件

使用Tinyxml创建和读取XML文件的优点:1,可在Windows和Linux中使用;2,方便易学,易用,可在http://sourceforge.net/projects/tinyxml/获取源代码。将其中的文件tinystr.h,tinyxml.h,tin...

鉴客
2011/12/10
3.5K
3
大牛们帮忙看看 cmake命令报错 错误如下

CMake Error at C:/Program Files/CMake/share/cmake-3.0/Modules/FindPackageHandleS tandardArgs.cmake:136 (message): Could NOT find TinyXML (missing: TINYXML_LIBRARY TINYXML_INCLUD......

炸猪翅1
2014/06/21
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

日志相关---日志配置和过滤器

一、log4j日志简介 1.1、 Loggers 级别和介绍 Loggers组件在此系统中被分为八个级别:ALL、TRANCE、DEBUG、INFO、WARN、ERROR和FATAL、OFF。这八个级别是有顺序的, ##off表示关闭ALL < T...

spinachgit
15分钟前
1
0
六个面试题层层剖析——LongAddr原子类

并发编程面试题 (1)LongAddr的结构是怎样的? (2)当前线程应该访问Cell数组里面的哪一个Cell元素? (3)如何初始化Cell数组? (4)Cell数组如何扩容? (5)线程访问分配的Cell元素有冲...

须臾之余
17分钟前
4
0
MySQL-入门(二)

本部分主要是MySQL的常用函数和高级用法。 一、MySQL排序 排序关键字:order by 排序字段。后面写上要排序字段,排序字段可以有多个,多个采用逗号间隔,order by默认采用升序(asc)排序,可...

潜行-L
27分钟前
1
0
BAM转VCF的方法对比

1 使用GATK HaplotypeCaller #java -jar gatk.jar HaplotypeCaller --native-pair-hmm-threads 4 -R xx.fa -I xx.bam -O xx.vcf --native-pair-hmm-threads用来设置多线程,默认为4线程 2 sa......

悲催的古灵武士
35分钟前
0
0
软件架构设计原则之“KISS”的总结使用

今天聊一聊软件架构设计中的 KISS 原则。 对! 就是亲嘴的那个 “KISS”! 一定要多练习。 ... ... ... ... 作为一个程序员我是推荐理解为“亲嘴”的,可以很好的解决单身问题,但作为一个架...

Owen_Jia
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部