为什么可执行文件小于与应用程序项目静态链接的库?

时间:2016-12-27 10:39:52

标签: c visual-studio static-linking

我在visual studio中创建了windows应用程序项目。 OpenSSL库(大小:15Mb)与应用程序项目静态链接。

但是,应用程序的静态大小(可执行文件).exe文件只有2 MB。

怎么可能? 谁能解释我链接器是如何做到的?

1 个答案:

答案 0 :(得分:2)

在链接期间,链接器将仅从应用程序所需的OpenSSL库中选择代码。它不包括整个OpenSSL库。因此,您的可执行文件可能比库小得多。

基本上,静态库只是目标文件的容器。每个目标文件都包含单个编译单元的代码。