我的C ++桌面应用程序是一个exe,它链接到许多静态库(.lib文件),并在静态库中使用MFC。 exe调试版本的总大小为25 Mb。
我要为其添加新功能,并且必须在创建新的静态库或在现有静态库之一中添加我的功能之间进行选择。
权衡是什么?由于我们的静态库数量相对较少,并且输出的exe也很小,因此将所有小库简单合并为大库有什么缺点?
在回答您的问题之前,我认为重要的是要记住与选择lib
和dll
有关的问题。
[C0的情况下
[C0的情况下
.lib
根据需要加载(在第一次调用期间),并且可以在程序的整个生命周期中在不同组件之间共享。
它们提供了更好的灵活性,因为它们可以以更加模块化的方式进行版本控制和管理
您可以更好地管理兼容性问题,尤其是在更新过程中。
根据您的情况:
.dll
选择解决方案,您将继承.lib的所有缺点....dll
和.lib
合并到A.lib
如果明天您只需要B.lib
功能,那么您将不得不与C.lib
链接,即使您仅需要B.lib
,您的二进制文件也会大大增加。我认为有必要在不复杂的情况下考虑这些方面来审查图书馆的架构