为什么在c ++中包含头文件而不是整个库

时间:2015-08-26 12:12:15

标签: c++ file header libraries

我一直想知道为什么没有人包含整个库而不仅仅是头文件。是为了减少冗余。或者一些内存优化概念。我喜欢在编程中了解这些小的基础知识。请有人向我解释。谢谢。

2 个答案:

答案 0 :(得分:3)

  

为什么没有人会包含整个库而不仅仅是标题   文件。是为了减少冗余

包括整个库(即标题和源代码)将更加冗余。现在它可以使用库本身( .lib .dll .so ,等等),它们具有已编译的代码。您还有只包含定义的标题。在编写自己的代码时,需要使用定义来了解库中可以使用的内容。编译应用程序时,将使用库文件中已编译的代码。因此,每次要使用它时,都必须自己编译库。

相反,如果您要使用完整的库源,则必须自己从头开始编译它们。除了不方便之外,这也可能是:

  • 非常耗时:如果构建库需要5个小时呢?
  • 很难做到:如果库有100个依赖项,你需要构建/配置很多其他东西才能编译它?

答案 1 :(得分:0)


  • 图书馆包含大量文件,我们的程序中只需要少量文件。对于例如当我们编写一个普通的c程序时,我们不需要加载Math.h头文件,因为这个头文件包含在数学运算中。包含这些文件会增加程序的整体编译时间。因此,最好只包括那些在程序中需要其功能而不是包含整个库的头文件。