3

我正在用 C++ 构建一个 win32 应用程序。我有两个正在编译和在应用程序中使用的静态库项目(开源库)。这些项目的静态库都超过 50MB。但是,我的可执行文件只有 3MB。这似乎不对,即使我将可执行文件(仅)复制到另一台机器上,一切似乎都运行良好。

我已按照 VS2010 静态链接项目的所有 Visual Studio 说明进行操作。即属性->框架和引用->添加静态库项目。

有任何想法吗?

4

2 回答 2

6

静态链接将仅包含您从库中使用的部分,因此您的可执行文件很可能比库小得多。

于 2012-05-31T18:19:24.243 回答
3

生成可执行文件时,链接器通常会删除未使用的方法。但是,在生成静态库时,无法确定需要哪些方法,因此将它们全部包含在库中。只有在生成可执行文件时,才确定真正使用的库中的方法,然后删除其他方法。

于 2012-05-31T18:21:31.403 回答