single-header、静态库和共享库之间链接 boost 库的更好用法是什么?
Which is a better usage variant of linking boost library between single-header, static library and shared library?
Boost 提供了 3 种 linking 他们的库的方法:single-header、静态库和共享库。哪个是首选默认值?使用一种方法优于另一种方法的 pros/cons 是什么?我似乎更喜欢 single-header 变体,因为它允许我避免独立库的编译步骤。而且我不需要一次所有的功能。我只打算使用 Boost 的单元测试框架。大多数 set-up/getting-started 文档总是提到使用 single-header 的快速而肮脏的方法。这个 link http://www.boost.org/doc/libs/1_60_0/more/getting_started/windows.html 描述 "can be used in “header-only” or “separately compiled” mode, although separate compilation is recommended for serious use." - 我想知道为什么 serious-use 需要编译 - 或者我们真的需要编译吗?
某些 Boost 库 需要 编译才能在您的项目中使用,而某些 Boost 库 需要 编译才能使用与它们相邻的特定功能。因此,如果您打算使用任何需要它的libraries/features,您需要编译Boost。
至于在静态库和共享库之间进行选择,这主要取决于个人喜好。一般来说,当我使用 Boost 时,我不会预料到我会拉出一个与 ABI 兼容但更新的 Boost 版本,并在不更改我自己的代码的情况下打包该代码。所以我几乎总是将 Boost(或者更准确地说,boost 中需要编译的部分)用作静态库。
Boost 提供了 3 种 linking 他们的库的方法:single-header、静态库和共享库。哪个是首选默认值?使用一种方法优于另一种方法的 pros/cons 是什么?我似乎更喜欢 single-header 变体,因为它允许我避免独立库的编译步骤。而且我不需要一次所有的功能。我只打算使用 Boost 的单元测试框架。大多数 set-up/getting-started 文档总是提到使用 single-header 的快速而肮脏的方法。这个 link http://www.boost.org/doc/libs/1_60_0/more/getting_started/windows.html 描述 "can be used in “header-only” or “separately compiled” mode, although separate compilation is recommended for serious use." - 我想知道为什么 serious-use 需要编译 - 或者我们真的需要编译吗?
某些 Boost 库 需要 编译才能在您的项目中使用,而某些 Boost 库 需要 编译才能使用与它们相邻的特定功能。因此,如果您打算使用任何需要它的libraries/features,您需要编译Boost。
至于在静态库和共享库之间进行选择,这主要取决于个人喜好。一般来说,当我使用 Boost 时,我不会预料到我会拉出一个与 ABI 兼容但更新的 Boost 版本,并在不更改我自己的代码的情况下打包该代码。所以我几乎总是将 Boost(或者更准确地说,boost 中需要编译的部分)用作静态库。