Visual Studio 静态链接应用程序太小

3
我正在用C++构建一个win32应用程序。我有两个静态库项目(开源库),我正在编译和使用这些项目。这些项目的静态库都超过50MB。但是,我的可执行文件只有3MB。这似乎不太对,在其他机器上复制可执行文件(仅限可执行文件)后一切都正常运行。
我已经按照Visual Studio 2010的指示进行了所有静态链接项目的操作。即属性->框架和引用->添加静态lib项目。
有任何想法吗?
2个回答

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

@SteveTownsend我在哪里可以找到连接器映像? - Jonathan Henson
所以从某种意义上说,你理论上可以通过使用静态链接而不是动态链接来使用更少的空间? - Jonathan Henson
你必须告诉链接器生成它。就像这里:http://msdn.microsoft.com/en-us/library/k7xkk3e2(v=vs.100).aspx - Steve Townsend
地图显示符号。这就是确切的内容。谢谢! - Jonathan Henson

3

未使用的方法通常会在生成可执行文件时被链接器删除。然而,在生成静态库时,无法确定哪些方法是需要的,因此所有方法都包含在库中。只有在生成可执行文件时,才能确定实际使用了库中哪些方法,其余方法将被删除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接