使用mingw32-make编译Tinyxml库

来源:互联网 发布:imac装windows系统 编辑:程序博客网 时间:2024/06/05 01:18
第一步:直接从官网下载,http://sourceforge.net/projects/tinyxml/。  注意:一定要下载.tar.gz的文件。

第二步:解压缩下载好的包到C:\tinyxml目录

第三步:使用写字板程序修改C:\tinyxml\Makefile文件:

   1、将TINYXML_USE_STL := NO的NO修改为YES,意思是在XML解析时使用标准库中的string字符串
   2、 将其中的OUTPUT := xmltest一行修改为:OUTPUT := libtinyxml.a 
   3、将xmltest.cpp从SRCS:=tinyxml.cpp tinyxml-parser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中删除

   4、注释掉xmltest.o:tinyxml.h tinystr.h。因为不需要将演示程序添加到动态库中。 
   5、将${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}修改为:

           ${AR}     $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}。
       保存退出。 
  第四步:在C:\tinyxml目录下执行mingw32-make命令编译,就会在当前目录下生成libtinyxml.a文件。

 

注:参考文章http://www.2cto.com/os/201101/82464.html

 

附加一:

在TiXmlDocument建立这前使用 SetCondenseWhiteSpace(false) 类函数来指示Tinyxml不处理多余的空格。默认是处理多余的空格。

  TiXmlDocument::SetCondenseWhiteSpace(false);
   TiXmlDocument *DDocument = new TiXmlDocument(DFileName.c_str());
   DDocument->LoadFile(TIXML_ENCODING_UTF8);

附加二:

TinyXML可以被编译成使用或不使用STL。如果使用STL,TinyXML会使用std::string类,而且完全支持std::istream,std::ostream,operator<<和operator>>。许多API方法都有 ‘const char*’和’const std::string&’两个版本。

如果被编译成不使用STL,则任何STL都不会被包含。所有string类都由TinyXML它自己实现。所有API方法都只提供’const char*’传入参数。

使用运行时定义:

TIXML_USE_STL

来编译成不同的版本。这可以作为参数传给编译器或者在“tinyxml.h”文件的第一行进行设置。

注意:如果在Linux上编译测试代码,设置环境变量TINYXML_USE_STL=YES/NO可以控制STL的编译。而在Windows上,项目文件提供了STL和非STL两种目标文件。在你的项目中,在tinyxml.h的第一行添加"#define TIXML_USE_STL"应该是最简单的。

 

注:参考文章http://www.cnblogs.com/flying_bat/archive/2007/11/10/955327.html