希望我能够很好地解释这一点,这样就不会让人感到困惑。
让我们说我正在创建一个名为" SimpleImage"的静态库。它使用两个外部静态库:GraphicsMagick ++和libsquish。在我的附加依赖项中,我包括libsquish.lib
和CORE_RL_Magick++.lib
,以及这些库的依赖项(例如,GraphicsMagick需要CORE_RL_png.lib
和CORE_RL_bzlib.lib
)。
现在,让我们说我有另一个名为" SimpleGraphics"的静态库。其中一个依赖项是我的静态库" SimpleImage"。现在,我的问题是,我还需要包含libsquish.lib
,CORE_RL_Magick++.lib
,CORE_RL_png.lib
等吗?或者那会多余吗?
我问的原因是因为我注意到我的静态库在编译时非常庞大,如果这是罪魁祸首,我很好奇。当我最终包括我的"主人"在DLL或可执行文件中的静态库,它们的大小也是膨胀的。还有另一个程序使用我完全相同的库,还有更多(BOOST,一个XML库等),而exe比我的可执行文件(5,503 MB!)小一些(3,141 MB)。我的实际代码库比其他程序要小得多。是的,我对所有进行了优化。
我只想知道是否需要添加所有这些额外的依赖项。
答案 0 :(得分:1)
在将libsquish.lib
创建为静态库时,您不需要将CORE_RL_Magick++.lib
和SimpleImage.lib
包含为附加依赖项。
在创建SimpleGraphics.lib
作为静态库时,您不需要包含它们。
只有在创建EXE或DLL时才需要指定“附加依赖项”。