tinyXml在linux下的使用

【下载】

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

【.o文件的编译和xmltest测试的可执行文件的执行】

编译

#make

最后讲生成如下信息:

tinyXml在linux下的使用

即产生 tinyxml 自带的测试程序,xmltest 可执行文件。在 tinyxml 目录下可以看见编译 成功的可执行文件 xmltest ,运行 xmltest 将会输出测试信息。

【动态库的编译】

修改 makefile 内容(仅列出修改部分)

#这里要把这个宏修改为YES,要不然有些库中的函数用不了

TINYXML_USE_STL := YES


#***********

# 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。

我使用的目录是 /mnt/hgfs/07-C++Project/tinyxml

但是在ldconfig刷新这个动态库的时候报错:

myzr@myzr:/usr/local/lib$ sudo ldconfig

[sudo] password for myzr:

/sbin/ldconfig.real: /usr/local/lib/libtinyxml.so is not an ELF file - it has the wrong magic bytes at the start.

这里是因为makefile写的不对,生成动态库应该用ld,而不是用ar,ar是生成静态库使用的。修改成下面的就可以了。同时要把xmltest.cpp删除,有这个编译不通过。

${LIB}: ${LIBOBJS}

${CXX} $(LDFLAGS) -o $@ ${LIBOBJS}

#ar -r $@ ${LIBOBJS} 这个是生成静态库的

【动态库的使用】

1,包含头文件目录

2,设置库文件名称为tinyxml

3,包含库文件目录

4,要包含一个宏TIXML_USE_STL,因为有部分函数是写在宏里面的。

tinyXml在linux下的使用

原文链接: https://www.cnblogs.com/matthew-2013/p/4670046.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/219525

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午10:35
下一篇 2023年2月13日 上午10:35

相关推荐