我有一个小的C ++应用程序,静态链接一个框架库,让我们称之为 F ,为我提供各种功能。对于其中一些 F 框架使用另一个静态库 L ,因此我也必须链接。它非常大,我确信我不需要它用于我的应用程序(它会处理我根本不在应用程序中使用的东西,甚至远程)。
到目前为止,链接器似乎优化了整个 L 库,因为我使用的 F 框架的部分并不需要它。但是在迁移到新版本的 F 后它已经发生了变化,我的应用程序的二进制文件的大小已经大大增加了。这是我想避免的。
有什么方法可以告诉链接器向我提供信息为什么没有优化的东西?或者我的哪些函数/方法可能间接使用 L 库中的一些东西?它甚至可能吗?根据这种信息,我希望能够以一种阻止将 L 库代码合并到最终二进制文件中的方式来改变 F 框架,或者实现我的应用程序有点不同,并没有使用 F 的某些部分导致这种情况。
我在这里谈论的是Microsoft Visual Compiler。但也许Clang或GCC可以帮助我更好吗?
感谢您的建议!