IBM の VisualAge C/C++ コンパイラを使用して AIX アプリケーションに (dlopen を使用して) 動的にロードする共有ライブラリを構築しています。残念ながら、必要なシンボルを取り除いているようです:
rtld: 0712-002 致命的なエラー: 終了しています。 rtld: 0712-001 Symbol setVersion__Q2_3CIF17VersionReporterFRCQ2_3std12basic_stringXTcTQ2_3std11char_traitsXTc_TQ2_3std9allocatorXTc__ が参照されました モジュール ./object/AIX-6.1-ppc/plugins/plugin.so() から、しかしランタイム定義から のシンボルが見つかりませんでした。
共有ライブラリと、共有ライブラリをロードするアプリケーションの両方が、エラー メッセージに記載されている VersionReporter を含む静的ライブラリに対してコンパイル/リンクします。
共有ライブラリをリンクするには、次のオプションを使用しています: -bM:SRE -bnoentry -bexpall アプリケーションをリンクするには、次のオプションを使用しています: -brtl
このシンボルがアプリケーションで削除されないようにするために使用できるオプションはありますか? IBM ドキュメントに記載されているように -nogc を使用してみましたが、共有ライブラリが無効な形式になるか、アプリケーションがリンクに失敗します (どちらを使用するかによって異なります)。