私たちはサードパーティ製の静的ライブラリを使用しています。つまり、アンドロイド開発用にA.a
としましょう。私たちは共有ライブラリとしてリンクし、1つのアプリケーションで正常に動作しますが、別のC.so
をビルドするのにB.so
を使用すると、A.a
の一部のシンボルが見つかりません。すでに-Wl,--export-dynamic
と-Wl,--whole-archive
を使用してB.so
をビルドしています。これらのシンボルを確認するのにnm
を使用していますが、存在しますが、“T”
の代わりに“t”
と表示されます。つまり、外部シンボルではなくローカルシンボルです。継ぎ目A.a
はsom調査の後に-fvisibility=hidden
でビルドされています。リンク時に-fvisibility = hiddenをオーバーライドする方法はありますか?
しかし、何らかの理由で新しいビルドライブラリをすぐに入手することが難しいため、回避策が必要です。リンク時にB.so
に-fvisibility=hidden
でビルドされていても、これらのシンボルをグローバルとしてエクスポートする方法はありますか?