c – 如何构建boost序列化库

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

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

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

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

编辑:然而我尝试使用它,而不编译它,但我得到这个错误:

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

所以我认为原因是它没有编译.是对的吗?

解决方法:

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

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

For a description of other options you can pass when invoking b2, type:

b2 –help

In particular, to limit the amount of time spent building, you may be interested in:

  • reviewing the list of library names with –show-libraries
  • limiting which libraries get built with the –with-library-name or –without-library-name options

键入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选项),以便所有库随时可以在需要时立即使用.

上一篇:Python中的字符串连接


下一篇:c – 提升iostreams编译错误