我正在编译一个静态(阅读评论后添加静态)C++ 库 PoDoFo,它的一些依赖项是可选的,例如 libJPEG、libTiff 和 libPNG。但是,许多库也可以选择相互依赖。例如,您可以通过使用 libJPEG 编译 libTIFF 在 libTiff 中启用 JPEG 支持。
在一个完美的世界中,我希望 libTIFF 能够通过实现 libJPEG 访问来启用 libJPEG 功能,因为我将它包含在我的 PoDoFo 编译中。可悲的是,我认为启用/禁用功能是在我第一次编译 libTIFF 时决定的。
那么这意味着我的 PoDoFo 库将包含 libJPEG 多次,如果我使用同一个库,甚至可能是相同的副本。
GCC 编译器会意识到这一点并将库消除/重新链接到 libJPEG 的一个副本吗?