如何构建Boost序列化库

5

我在某处看到,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 >));
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

所以我认为这个问题的原因是它没有被编译。对吗?


构建Boost的完整说明在这里:http://www.boost.org/doc/libs/1_55_0/more/getting_started/ - JBentley
@JBentley:啊,我看到了那个页面,其中写了序列化库必须要编译。哦,我发现那里也有安装说明。谢谢。 - Rico-E
你可以从软件包管理器中安装Ubuntu的boost库 -> https://dev59.com/5Wcs5IYBdhLWcg3wym4h - raw-bin hood
1个回答

13

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

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

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

b2 --help

特别是,为了限制构建所花费的时间量,您可能会感兴趣:

  • 使用--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选项),这样所有库都准备好在任何时候直接使用。


1
谢谢。在您的推荐下,我已经构建了所有的库。但是在一开始就遇到了“link.jam没有这个文件或目录”的问题。请问是否有什么错误? - Rico-E
1
@Rico-E 整个过程看起来很模糊。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接