0

我一直想知道这一点。假设我有一个程序(或应用程序)A,其大部分库链接到应用程序 B 中的预编译库;那么可以将应用程序 B 的部分链接到应用程序 A 中的特定库吗?

4

1 回答 1

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 并且也可以被视为一组隔离的、可重用的库.

于 2013-06-04T17:31:50.007 回答