我在某处读到了必须编译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 >));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所以我认为原因是它没有编译。是吗?
答案 0 :(得分:9)
要构建Boost,请按照here的说明进行操作。
根据您的评论,您只想构建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
选项),以便所有库都可以随时使用需要它们。