我正在用 C++ 编写一个大型静态库。在那个库中,我使用了大量静态和动态库中的符号。当我“制作”它时,我不需要链接任何库,因为它是静态的。这是我的问题:我的静态库非常通用。它为同一个接口提供了多个实现(您可以看到驱动程序之类的实现;libA 提供自己的实现,而 libB 提供其等等)。这些实现不打算一起使用,因为其中一些是平台相关的。
链接我的库时出现问题。即使客户端的代码不依赖于任何 lib 符号,客户端也必须链接到我的 lib 使用的符号的所有库。例如,如果客户的代码只依赖于libA,他仍然必须链接到libB,因为我的静态库中有一些来自libB的符号。
您是否知道一种方法来排除这种行为,并且只链接实际使用的库,在客户端代码中推断符号?
谢谢你。