编译库与头文件库

时间:2012-12-26 06:00:30

标签: c++

我对C ++很新,我试图理解为什么需要先编译一些库。

例如,某些boost库只是标题(例如msm),其他一些需要编译(例如定时器)

我找不到一个很好的解释,为什么会这样。有人可以帮我理解吗?

谢谢

2 个答案:

答案 0 :(得分:1)

某些类型的内容仅保留在标头中,而不是通常的.h(pp).cpp文件。我所知道的只有一个是模板化的类和函数。我肯定会利用这个优势。

答案 1 :(得分:1)

  • 仅限标头库更易于使用,但更难编写。你只需要#include他们。
  • 他们有更多优化机会,但编译时间更长。有更多的代码和更多的上下文需要优化,但这需要时间。
  • 最后但并非最不重要的是,必须在头文件中定义template

但是,通过使用头文件,人们可以逃脱多少,或者愿意忍受多少,这是有限制的。例如,处理共享库中的静态对象,就像 C ++ 标准一无所知,有时只能在标题中完成。