哪个是在单头,静态库和共享库之间链接boost库的更好用法变体?

时间:2017-09-28 19:51:46

标签: c++ boost shared-libraries static-libraries header-files

Boost提供了3种链接库的方法:单头,静态库和共享库。哪个是首选默认值?使用一种方法优于另一种方法的优点/缺点是什么?我似乎更喜欢单头变体,因为它允许我避免独立库的编译步骤。而且我不需要同时拥有所有功能。我只计划使用Boost的单元测试框架。大多数设置/入门文档总是提到使用单头的快速和脏的方法。此链接http://www.boost.org/doc/libs/1_60_0/more/getting_started/windows.html描述"可用于“仅标题”或“单独编译”模式,但建议单独编译以供严肃使用。" - 我想知道为什么认真使用需要编译 - 或者我们真的需要编译吗?

1 个答案:

答案 0 :(得分:2)

某些Boost Libraries 需要编译才能在您的项目中使用,而某些Boost Libraries 需要编译它们附近的特定功能。因此,如果您计划使用任何需要它的库/功能,那么需要来编译Boost。

至于在静态库和共享库之间进行选择,这主要取决于个人偏好。一般来说,当我使用Boost时,我不会预料到我将推出一个兼容ABI且更新版本的Boost的情况,并打包该代码而不更改我自己的代码。所以我几乎总是使用Boost(或者更确切地说,需要编译的boost部分)作为静态库。