共通のベースライブラリにすべてリンクするアプリケーション用のプラグインがあります。基本ライブラリは、各プラグインのすべてのオブジェクトコンストラクタのリストを保持するシングルトンを定義します。共有ライブラリ固有のシングルトンインスタンスを作成する方法
ウィンドウでは、この基本ライブラリを静的ライブラリとして作成できます。したがって、シングルトンのコピーが各プラグインに配置されます。 (原作者ごとに)共有ライブラリとして
- ビルドベース
- ビルドベースとして: は、しかし、Linux上で私は、私がこれまでに以下のことを試してみたas this fellow.
逆の問題のビットを持っています-fPIC
- -fPICと同様に静的ビルドベースの静的、明示的にCMakeの
に-rdynamic削除私は実際にプログラムを維持したいと思いますシングルトン定義を各プラグインの基本ライブラリの内部に置いて、それ自身のインスタンスを持つようにすることで、これと同じ構造になります。私は各プラグインに定義を移すことを実験しましたが、私はそれを避けたいと思っています。 本質的に私は彼がバグと考えるものを再現したい。しかし、彼は自分のシングルトンを1つのヘッダファイルに完全に定義しています。これは、各プラグインが独自のクラスのインスタンス化を持つことになります。一方、ベースライブラリにコンパイルされたシングルトンの定義があります。
もう1つの機会は[可視性プラグマを使用する](https://gcc.gnu.org/onlinedocs/gcc/Visibility-Pragmas.html)です。 – yugr
応答していただきありがとうございます、私は数日後にテストし、私がやっていることがうまくいくかどうかを確認します。 –
これは私がやりたいことがうまくいくことを実証し、検証しました。どうもありがとうございます。 –