サーバー用の共有ライブラリを作成しているときに、次の状況に陥っています。
理解しやすくするために:
- サーバーフレームワークをfwAと呼びましょう
- 私が書いた libB という共有ライブラリ
- libC1 および libC2 という名前の fwA と libB の両方によってリンクされたライブラリの異なるバージョン
そして fwA は dllopen によって libB を読み込みます
以下は私の質問です。libCにはデータ構造(DS1)が定義されていますが、libC1とlibC2ではデータ構造がわずかに異なります。
コンパイラ/リンカー/プログラムは、使用するデータ構造のバージョンをどのように決定しますか?