アプリケーション用のプラグインを書いています。アプリケーションは、を使用してプラグインをロードしますdlopen()
。プラットフォームはFedoraLinux11です。アプリケーションのすべてのソースコードがあります。
コードをアプリケーションに正常に追加しましたが、アプリケーション全体が一度にリンクされていたため、正常にリンクされました。ただし、最終的には、コードを別のプラグインにしたいです。
プラグインとしてコードを作成するのに問題があります。共有(.so)ライブラリとして構築しています。私のコードは当然アプリケーション内のシンボルを参照しているため、プラグインがg++
-L
and-l
オプションを使用してリンクするライブラリを指定する必要があります。ただし、私のプラグインを受け入れるアプリケーションは、.soライブラリのセットではなく、単一の実行可能ファイルです。
ここでいくつかの基本的なポイントが欠けています。プラグインをリンクするにはどうすればよいですか?
私はまだプラグインをビルドしようとしていることに注意してください-私はまだプラグインを使用してロードしようとしているところまで来ていませんdlopen()
。
解決策:ご回答ありがとうございます。nemoによって提案された--just-symbolsメソッドを使用しましたが、うまく機能しました。ありがとう!