C/C++では、複数の依存関係(tinyxml、fft stuffなど)、テンプレート、非常にシンプルなCインターフェイスの後ろにきちんとラップされています。iOS静的ライブラリでのBIG C++プロジェクトのラップアップ:依存関係、ストリッピング&隠蔽
OSX用の動的ライブラリを構築するのはうまくいきました。希望のCインタフェースだけを残し、すべてのC++クラス/テンプレート/依存関係/ ...最後にエクスポート/表示されるシンボルはAPIコールです:OUR_LIBNAME_FUNC1、OUR_LIBNAME_FUNC2など
ただし、私たちはiOS静的ライブラリでも同じことをしたいと考えています。コードの混乱、コードの書き換え、objdump-ing、難読化などの大きな混乱に戻らずに、必要のないすべてのシンボルを隠す方法はありますか?特に、他の人が再利用する可能性のある外部ライブラリでは、複数のシンボル定義が生成されます。研究(主に、スタックオーバーフロー:-))の多くの後
私は一種の絶望的になってきています...
は
これは試して興味深いものになるだろう...私は、これは物事を得るためにさらに多くの手順が必要としビルドする。以下に説明する私の方法は、完全なビルドを行い、その後にストリッピングすることによって動作します。 –
追加の手順では、c APIのエクスポートを明示的にリストしています。 ldは、exported_symbols_listのシンボル以外のすべてを削除します。間違いなく、すべてを1つのファイルに入れるよりも恐ろしいことではありません。 "ar"のステップは、あなたが誰かに ".o"の代わりに ".a"を渡したければ、 – mtoy