创建共享库期间底层发生了什么?

问题描述

我使用Windows,并且我的项目中有100个静态库,每个库的大小约为10MB。我将这100个库命名如下:

lib1.lib
lib2.lib
...
lib100.lib

我使用命令link.exe /OUT:sum.dll lib1.lib lib2.lib ... lib100.lib /ERRORREPORT:QUEUE /INCREMENTAL:NO /NOlogo /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"D:/path/to/sum.pdb" /SUBSYstem:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:/path/to/sum.lib" /MACHINE:X64 /machine:x64 /IGnorE:4006 /IGnorE:4098 /IGnorE:4217 /IGnorE:4221 /DLL在发布模式下构建共享库。

我得到sum.dll的大小约为50MB。

然后我使用命令lib.exe /OUT:libsum.lib lib1.lib lib2.lib ... lib100.lib在发布模式下构建静态库。

我得到libsum.lib的大小约为1000MB。

我知道静态库只是压缩所有相关的库。但是,为什么libsum.lib 的大小比sum.dll大?构建sum.dll时底层发生了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)