【问题标题】:visual studio statically linked application way too smallVisual Studio 静态链接的应用程序方式太小
【发布时间】:2026-02-09 01:05:01
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: c++ visual-studio-2010 static-linking


    【解决方案1】:

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

    【讨论】:

    • @SteveTownsend 我在哪里可以找到链接器映射?
    • 所以我想在某种程度上,理论上你可以通过使用静态链接而不是动态链接来使用更少的空间?
    • 你必须告诉链接器生成它。如这里:msdn.microsoft.com/en-us/library/k7xkk3e2(v=vs.100).aspx
    • 地图显示符号。所以肯定是这样。谢谢!
    【解决方案2】:

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

    【讨论】:

      最近更新 更多