【问题标题】:how to build boost serialization library如何构建boost序列化库
【发布时间】:2014-02-04 03:32:27
【问题描述】:

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

所以我从 source forge 下载了最新版本,并将其解压缩到我项目中的路径中。 现在呢?

我调查了文件夹,但找不到makefile

那么我该怎么做才能编译 boost:serialization 库?

编辑:尽管如此,我尝试使用它,但没有编译它,但我收到此错误:

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

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

【问题讨论】:

标签: c++ boost build compilation boost-serialization


【解决方案1】:

要构建 Boost,请按照说明进行操作 here

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

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

b2 --帮助

特别是,为了限制构建所花费的时间,您可能对以下内容感兴趣:

  • 使用 --show-libraries 查看库名称列表
  • 限制使用 --with-library-name 或 --without-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 构建所有库类型(静态/动态库、静态/动态运行时、调试/发布、单/多线程),您可以键入:

b2 toolset=msvc-12.0 --with-serialization --build-type=complete stage

注意,如果您打算在未来的项目中使用 Boost,那么构建整个东西(即省略 --with-serialization 选项)可能会更简单,这样所有库都可以在您需要时立即使用.

【讨论】:

  • 谢谢。根据您的建议,我构建了所有库。我一开始就收到link.jam no such file or directory。有什么问题吗?
  • @Rico-E 这整个过程似乎被混淆了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
  • 2015-05-08
  • 2020-07-21
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
相关资源
最近更新 更多