为C ++桌面应用程序组织静态库

问题描述 投票:0回答:1

我的C ++桌面应用程序是一个exe,它链接到许多静态库(.lib文件),并在静态库中使用MFC。 exe调试版本的总大小为25 Mb。

我要为其添加新功能,并且必须在创建新的静态库或在现有静态库之一中添加我的功能之间进行选择。

权衡是什么?由于我们的静态库数量相对较少,并且输出的exe也很小,因此将所有小库简单合并为大库有什么缺点?

c++ architecture mfc static-libraries static-linking
1个回答
0
投票

在回答您的问题之前,我认为重要的是要记住与选择libdll有关的问题。

  1. [C0的情况下

    • 二进制文件的大小根据库的大小而增加,无论在运行时是否使用库。
  2. [C0的情况下

    • .lib根据需要加载(在第一次调用期间),并且可以在程序的整个生命周期中在不同组件之间共享。

    • 它们提供了更好的灵活性,因为它们可以以更加模块化的方式进行版本控制和管理

    • 您可以更好地管理兼容性问题,尤其是在更新过程中。

根据您的情况:

  • 通过基于.dll选择解决方案,您将继承.lib的所有缺点...
  • 通过将不同的库分组为一个库,您将杀死解决方案的模块化:
    • 想象一下您将.dll.lib合并到A.lib如果明天您只需要B.lib功能,那么您将不得不与C.lib链接,即使您仅需要B.lib,您的二进制文件也会大大增加。
  • 今天您的二进制文件很小,但是您不知道明天会发生什么...
  • 我认为有必要在不复杂的情况下考虑这些方面来审查图书馆的架构

© www.soinside.com 2019 - 2024. All rights reserved.