链接两个用 c++_static 构建的库

Linking two libraries built with c++_static

在下面的网页中,

https://developer.android.com/ndk/guides/cpp-support

它指出用c++_static编译的两个库(libA.so,libB.so)打破了一个定义规则,其中将为c++函数定义多个符号不同的图书馆。这种情况是未定义的行为,可能会出现多个错误。

但是,我不知道这是否也适用于以下情况:

在这种情况下,不会出现问题,link 共享库相对于静态库是安全的,我说得对吗?或者 libc++ 中的符号是否嵌入了 libA.a

很安全。事实上,libA.alibB.a 都不会链接到 libc++。静态库没有链接到它们的依赖项——这是在链接使用这些库的 executables/shared objects 时完成的。

libc++ 中唯一会出现在这两个静态库中的代码是来自 headers 的(内联)代码。这不是问题。