【发布时间】:2013-05-14 23:38:05
【问题描述】:
我正在用 C++ 编写一个大型静态库。在那个库中,我使用了大量静态和动态库中的符号。当我“制作”它时,我不需要链接任何库,因为它是静态的。这是我的问题:我的静态库是非常通用的。它为同一个接口提供了多个实现(您可以看到像 drivers 这样的实现;libA 提供它自己的实现,而 libB 提供它等等)。这些实现不打算一起使用,因为其中一些是平台相关的。
链接到我的库时出现问题。客户端必须链接我的 lib 使用符号的所有库,即使客户端的代码不依赖于任何 lib 符号。例如,如果客户端的代码只依赖于libA,他仍然必须链接到libB,因为我的静态库中有一些来自libB 的符号。
你知道一种方法来排除这种行为,并且只链接到实际使用的库,推断客户端代码中的符号吗?
谢谢。
【问题讨论】:
标签: c++ linker g++ static-libraries clang++