当前位置: 首页 > 知识库问答 >
问题:

如何构建boost序列化库

邹野
2023-03-14

我在某个地方读到boost的序列化库必须被编译(我忘了在哪里读的,否则我会发布链接)。

因此,我从source forge下载了最新版本,并将其提取到我项目中的一个路径中。现在呢?

编辑:尽管如此,我试图使用它,但没有编译它,但我得到了这个错误:

boost/archive/basic_xml_oarchive.hpp:92:9: error: 
no matching function for call to 'assertion_failed'
    BOOST_MPL_ASSERT((serialization::is_wrapper< T >));
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

所以我认为原因是,它没有被编译。对吗?

共有1个答案

万俟嘉珍
2023-03-14

要构建Boost,请按照此处的说明进行操作。

根据您的评论,您只想构建Boost的一部分(序列化)。如果您遵循上面的链接,会有一个包含以下建议的部分(措辞可能会有所不同,我是从Windows说明中复制的):

有关调用b2时可以传递的其他选项的说明,请键入:

  • 使用--show-libraries查看库名称列表
  • 限制使用--with-library-name或--with-library-name选项构建的库

键入b2--show-libraries会产生以下结果:

The following libraries require building:
    - atomic
    - chrono
    - context
    - coroutine
    - date_time
    - exception
    - filesystem
    - graph
    - graph_parallel
    - iostreams
    - locale
    - log
    - math
    - mpi
    - program_options
    - python
    - random
    - regex
    - serialization
    - signals
    - system
    - test
    - thread
    - timer
    - wave

因此,要构建序列化,可以将选项--with-serialization传递给b2。例如,要使用VS2013构建所有库类型(静态/动态库、静态/动态运行时、调试/发布、单线程/多线程),可以键入以下内容:

注意,如果您计划在未来的项目中使用Boost,那么只构建整个程序可能会更简单(即省略--with-serialization选项),以便所有库都可以随时使用。

 类似资料:
  • 我正在读取xml文件并将其存储到boost::property_tree::ptree pt(object)中。 我试图序列化这个ptree对象使用方法定义在ptree_serialization.hpp 当我使用上述代码时,我得到的错误是:; 如果我做错了什么,你能告诉我吗。请告诉我是否可以序列化xml解析的属性ptree对象。

  • 问题内容: 我是C ++的新手。使用序列化和反序列化类型数据的最简单方法是什么。我发现了一些使用示例,但它们对我来说是晦涩的。 问题答案: 请注意,将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“ ab”:“ z”} 。否则,使用是微不足道的。这是一个小例子。

  • 我正在尝试使用boost::property_tree反序列化JSON数据。我已经设置了一个boost fusion序列来识别结构成员元素的类型,并使用一个函数来反序列化一个适当的JSON树。它过去对于包含普通数据类型的结构工作得很好。当我尝试对包含结构的结构应用相同的操作时,逻辑会失败并导致编译器错误。有人能看出我错在哪里吗? 错误消息:1

  • 我面临一个生成器类继承的序列化问题。如下所示: 基类: 我看到以下例外: 有人知道如何避免这个问题吗?

  • 推进序列化 树类 作家 读者 我已经写入并验证了对文件的成功序列化,但未能从可用对象中反序列化。 无论我是用文本还是二进制编写,我都可以验证序列化的输出是否正确,但由于某些原因,序列化的输出不会反序列化,并且在加载时留下一个空对象。