仅使用Boost库中的属性树

时间:2018-08-19 11:00:53

标签: c++ boost qt-creator boost-propertytree

我需要使用boost库中的属性树来解析大型XML文件。如何仅使用它们而不是包括整个boost库?

2 个答案:

答案 0 :(得分:2)

直接的问题是:它仅是标头,因此没有任何实际意义。

这更重要的是:

  

我需要使用属性树来解析大型XML文件

您需要选择一个:

  1. 我需要解析一个大型XML文件
  2. 我需要使用[...]属性树

提升属性树是 XML库。如果需要解析通用XML,则不能使用Boost属性树,否则很快就会后悔。参见What XML parser should I use in C++?`

答案 1 :(得分:1)

您完全不需要包括整个Boost库。例如,如果您查看appropriate boost documentation page for XML Property Trees中的快速教程,就会发现只需要包括以下内容:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

为了获得功能齐全的教程代码,编译时应无错误。

因此,这回答了您的问题:

  

如何仅使用它们而不是包括整个boost库?

但是,如果您实际上是要打包/部署整个boost库 ,而不是包括整个boost库,那么您有the bcp tool, itself a part of boost(也提到了this post)可以帮助您筛选整个过程,并确切地知道使用property_tree库需要库的哪些部分。

我为您运行了此

bcp --list property_tree

并且结果很好...很久以后才能给出这个答案。例如,property_tree库本身依赖于整个boost库中的很大一部分。

因此,将整个提升打包为项目的一部分与仅交付构建property_tree所需的东西之间没有明显的区别。

底线:如果您需要的只是XML解析功能,而所有提升都对您来说太大了,那么我建议您检查一下其中的众多XML库之一such as TinyXML-2 –它是“简单,小型,高效的C ++ XML解析器,可以轻松集成到其他程序中。”