c++ - 应用程序库之间循环依赖的影响

标签 c++ linux windows

我一直在想这个问题。假设我有一个程序(或应用程序)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/

相关文章:

windows - 带有 SourceTree 的 git 和 Cygwin 路径

windows - 如何通过 MSVS 2017 x64 命令行将链接器选项传递给 `cl`?

c++ - g++参数后的逗号

c++ - 如何在boost asio下将serial_port flow_control设置为none以外的值

c++ - 计算字符串 C++ 中字符数的标准函数

php - 无法在 Linux 上安装 OAuth

作为线程调用的 C 函数 - Linux 用户态程序

java - 从 java 更新 ldap

c++ - 在 C++ 中为 C 库转换数据类型

linux - linux pthreads中2个线程之间的同步