私はアンドロイドNDKプロジェクトに取り組んでいます。プロジェクトファイル(Android.mk)を修正しようとすると、リファレンスを読み込んだ後に-rdynamicというリンクオプションが見つかりましたが、フラグの意味はまだ分かりません。gccのリンクオプション/ LOCAL_CFLAGS -dynamic doは何ですか
私が取り組んでいるプロジェクトです。それは2つの部分を持っています: - 複数のクライアントアプリケーション。 - 複数の共有ライブラリ。 (各クライアントには対応する共用ライブラリーがあります) - バックグラウンド・デーモン・プロセス:プロセス・マネージャーとランチャー。
まず、クライアントアプリケーション。クライアントの実行が開始されると、マネージャプロセスと通信することができます。マネージャはランチャープロセスに基づいて対応する共有ライブラリをロードするためにdlopen()を使用します。その後、マネージャは新しいランチャープロセスを作成します。
リンクフラグはバックグラウンドプロセスと関係がありますが、わかりません。
おかげ
参照:
https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options
-rdynamic
はそれをサポートするターゲットで、ELFリンカーにフラグ-exportダイナミックに合格します。これは、リンカに対して、使用されているシンボルだけでなく、すべてのシンボルを動的シンボルテーブルに追加するように指示します。このオプションは、dlopenを使用する場合や、プログラム内からバックトレースを取得する場合に必要です。