我一直在想这个问题。假设我有一个程序(或应用程序)A,其大部分库链接到应用程序 B 中的预编译库;那么可以让应用程序 B 的部分链接到应用程序 A 中的特定库吗?
最佳答案
这实际上取决于 A 和 B 的关系,以及 A 的库 L(A) 与 A 的关系,以及 B 的库 L(B) 与 B 的关系。
如果 L(B) 以任何方式依赖于 B,因为 A 依赖于 L(B),那么 A 依赖于 B,我什至可以说 A 和 B 本质上是一个应用程序.在这种情况下,如果 B 链接到 L(A) 并没有多大区别,只是从长远来看,最终的关注点分离会更加困难。
但是,要实现此目的,您必须确保 A 或 L(A) 链接到的 L(B) 的子集不依赖于 L(A)。
如果 L(B) 独立于 B(它可以被认为是一组可重用的库),那么我会说 L(B) 除了B链接到它的事实。因此在链接时 A 和 B 之间存在明显的关注点分离,并且不建议将 B 链接到 L(A),当然除非 L(A) 独立于 A 并且也可以被视为一组隔离的可重用库.
关于c++ - 应用程序库之间循环依赖的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923511/