動的共有ライブラリをプラグインとして使用するコードを書いています。
共有ライブラリを構築するための私のコマンド ラインは次のようになります。
cc -shared -fPIC -o module.so -g -Wall module.c
モジュール内では、メインの実行可能ファイル内にロードされた他の共有ライブラリにある関数を呼び出すことができます。
ただし、実行可能ファイル自体にある (エクスポートされた) 関数にアクセスできません (undefined symbol
エラーが発生します)。
私の呼び出しはdlopen
次のようになります。
void *handle = dlopen(plugin, RTLD_NOW);
実行可能ファイルのすべてのユーティリティ関数をさらに別の共有ライブラリに配置することなく、モジュールが実行可能ファイルにコールバックする方法を誰かアドバイスしてもらえますか?