我正在用C ++构建一个win32应用程序。我有两个静态lib项目(开源库),我正在应用程序中编译和使用。这些项目的静态库都超过50MB。但是,我的可执行文件只有3MB。这似乎不对,即使我将可执行文件(仅)复制到另一台机器上,一切似乎运行正常。
我已经按照VS2010静态链接项目的所有Visual Studio说明进行操作。即,属性 - >框架和参考 - >添加静态lib项目。
有什么想法吗?
答案 0 :(得分:6)
静态链接将仅包含您在库中使用的部分,因此很可能您的可执行文件比库小得多。
答案 1 :(得分:3)
生成可执行文件时,链接器通常会删除未使用的方法。但是,在生成静态库时,无法确定需要哪些方法,因此所有这些方法都包含在库中。只有在生成可执行文件时,才会确定lib中确实使用的方法,其他方法将被删除。