创建静态库时,是否需要包含每个依赖项?

时间:2015-09-29 01:52:12

标签: c++ dependencies static-libraries

希望我能够很好地解释这一点,这样就不会让人感到困惑。

让我们说我正在创建一个名为" SimpleImage"的静态库。它使用两个外部静态库:GraphicsMagick ++和libsquish。在我的附加依赖项中,我包括libsquish.libCORE_RL_Magick++.lib,以及这些库的依赖项(例如,GraphicsMagick需要CORE_RL_png.libCORE_RL_bzlib.lib)。

现在,让我们说我有另一个名为" SimpleGraphics"的静态库。其中一个依赖项是我的静态库" SimpleImage"。现在,我的问题是,我还需要包含libsquish.libCORE_RL_Magick++.libCORE_RL_png.lib等吗?或者那会多余吗?

我问的原因是因为我注意到我的静态库在编译时非常庞大,如果这是罪魁祸首,我很好奇。当我最终包括我的"主人"在DLL或可执行文件中的静态库,它们的大小也是膨胀的。还有另一个程序使用我完全相同的库,还有更多(BOOST,一个XML库等),而exe比我的可执行文件(5,503 MB!)小一些(3,141 MB)。我的实际代码库比其他程序要小得多。是的,我对所有进行了优化。

我只想知道是否需要添加所有这些额外的依赖项。

1 个答案:

答案 0 :(得分:1)

在将libsquish.lib创建为静态库时,您不需要将CORE_RL_Magick++.libSimpleImage.lib包含为附加依赖项。

在创建SimpleGraphics.lib作为静态库时,您不需要包含它们。

只有在创建EXE或DLL时才需要指定“附加依赖项”。

相关问题