我有我的主应用程序和两个库:foo 和 bar。foo 在某些方法中使用 bar,它在 LDADD 中指定。我的主应用程序使用 foo,并间接使用 bar,所以它在 Makefile 中有 LDADD = foo。
在这种情况下,如果我没有将 bar 库添加到我的主应用程序的 LDADD,我会得到一个编译错误。
未定义参考; 它说来自 foo 的 .so 文件需要来自 bar 的 .so 文件。
我不明白这一点。一旦我用 LDADD = bar 编译(非静态) foo ,为什么我在编译使用 foo 的应用程序时再次需要它?