【问题标题】:what is a header only library [duplicate]什么是仅标头库[重复]
【发布时间】:2024-01-05 00:00:01
【问题描述】:

我正在为我的下一个项目使用 boost C++ 库,文档说它是一个仅标头库。

大多数 Boost 库都只有标头:它们完全由标头组成 包含模板和内联函数的文件,并且不需要 单独编译的库二进制文件或特殊处理时 链接。

所以我的问题是,这是否意味着我不需要为这些 boost 库链接库,并且包含标头是唯一的要求?

什么是仅标头库,它们与需要构建和链接到二进制文件的标准库有何不同?

【问题讨论】:

  • 是的,只有头文件,没有源文件。只需包含您需要的标题,您应该会很好。
  • 标头是源文件。只是没有任何东西可以链接,因为编译器会内联所有内容或为您处理。

标签: c++ boost shared-libraries software-distribution


【解决方案1】:

顾名思义,仅包含标头的库仅由标头组成。 这实际上意味着您不必链接二进制文件,因为该库的整个代码都包含在标头中,并且当您将它们包含在项目中时,该代码将被编译。

这种库有时是唯一的方法,例如在处理模板时。

【讨论】: