На следующей веб-странице
https://developer.android.com/ndk/guides/cpp-support
утверждает, что наличие двух библиотек (libA.so, libB.so), скомпилированных с c++_static
, нарушает правило одного определения, в котором для функций c ++ в разных библиотеках будет определено несколько символов. В этом случае поведение будет неопределенным, при этом может возникнуть несколько ошибок.
Однако я не знаю, происходит ли это и в следующем сценарии:
- Я компилирую
libA.a
связанный agsint c++_static
- Затем я компилирую
libB.so
и связываюсь с c++_static
и libA.a
В таком случае проблема не возникнет, и было бы безопасно связать разделяемую библиотеку со статической библиотекой, я прав? Или символы из libc++
встроены в libA.a
?