Wir verwenden eine statische Bibliothek von Dritten, sagen wir A.a
für Android-Entwicklung. Wir verlinken es als Shared Library und es funktioniert gut in der einen App, aber wenn B.so
verwenden, um ein anderes C.so
zu bauen, können einige Symbole in A.a
nicht finden. Wir haben bereits -Wl,--export-dynamic
und -Wl,--whole-archive
verwendet, um B.so
zu bauen. Wir verwenden nm
, um diese Symbole zu überprüfen, es existiert aber Liste als “t”
anstelle von “T”
, was bedeutet, dass es lokale Symbole anstelle von externen Symbolen ist. Nähte die A.a
werden mit -fvisibility=hidden
nach som Untersuchung gebaut.Gibt es eine Möglichkeit zum Überschreiben der -fvisibility = zum Zeitpunkt der Verbindung ausgeblendet?
Aber aus irgendeinem Grund ist es schwer für uns, sofort eine neue Build-Bibliothek zu bekommen, also brauchen wir eine Workaround. Gibt es eine Möglichkeit, diese Symbole als global zu exportieren, obwohl es mit -fvisibility=hidden
in B.so
zur Verbindungszeit erstellt wurde.