我一直想知道这件事。假设我有一个程序(或应用程序)其大多数库链接到应用程序B中的预编译库;是否可以将应用程序B的部分链接到应用程序A中的特定库?
答案 0 :(得分:2)
这实际上取决于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的一部分事实上B链接到它。因此,在链接时A和B之间存在明显的关注分离,并且不建议将B链接到L(A),除非L(A)独立于A并且也可以被认为是一组隔离的,可重用的库