可执行文件 (.exe) 的大小如何影响使用创建编译更多源文件的静态库,其中一些源文件不是 exe 所必需的?

How size of executable(.exe) affected using a static library which created compiling more source files in which some of them are not required for exe?

header 中解释了高级问题陈述。让我用一个更简单的例子来提出这个问题,如下所示。 比方说,我使用源文件(A.c、B.c、C.c...Z.c)创建了一个静态库(staticLib.a)。 这个静态库(staticLib.a)被用来创建一个最终的可执行文件(./finalExe)。 最终可执行文件 (./FinalExe) 将仅在一个实例中使用 A.c、B.c 中的函数。

所以,我的问题是,

  1. 重建静态库(staticLib.a)真的能帮助我减少最终可执行文件(./FinalExe)的大小吗?
  2. (or) 链接器负责将A.c和B.c中需要的函数链接到静态库(staticLib.a)中,并管理最终的可执行文件动态大小?在另一种情况下,最终的可执行文件需要 D.c、E.c 中的函数,在这种情况下,链接器是否能够动态管理可执行文件的大小?

如有任何建议,我们将不胜感激!!

链接器将根据需要从 staticLib.a 中提取目标文件(不是源代码)。无需重建库以包含更少的对象。

详细说明here or here