プラグインライブラリがディスク上の場所を識別するための標準/許可された方法はありますか?

プラグインライブラリがディスク上の場所を識別するための標準/許可された方法はありますか?

プラグインアーキテクチャを使用してCプログラムを開発しています。両方の.rpmパッケージをビルドしてパッケージ化します.deb

一部のプラグインには、そのプラグインでのみ使用できるイメージファイルやスクリプトファイルなどの追加のバイナリリソースがあります。これらの追加リソースはプラグインファイルと同じディレクトリにあります.so。したがって、プラグインは関連ファイルを開くためにディスクの場所と同じディレクトリになければなりません。

これを行う標準または少なくともやや慣用的な方法はありますか?

特に/usr/lib/<foo>/plugins一部のディストリビューションでは/usr/lib64vs。/usr/lib

また、開発中はプログラム(および/またはプラグイン)が標準の場所にインストールされません。これはユーザーのホームフォルダ内のソースコードサブディレクトリで実行されます。この場合、プラグインフォルダは開発中のバイナリとはわずかに異なる相対位置にあります。

編集する:具体的な例を挙げると、プロジェクトのソースコードツリーにはディレクトリがfooありますplugins。付属の標準プラグインの一部がこのディレクトリfooに保存されます。pluginsプラグインの1つがこれpyconsoleに依存しfoo_pycon.py、これはplugins\pyconsole\ディレクトリにもあります。

開発中に、さまざまなポイントのさまざまな作業のために、ホームディレクトリに複数のストレージコピーがある可能性があります。作業コピーはにあります~\src\foo_branch\

foo私はローカルに構築されたインスタンスをインスタンスと呼びます~\src\foo_branch\release_x86_64\bin\foofooを含むすべてのプラグインを相対サブディレクトリに配置します~\src\foo_branch\release_x86_64\lib\plugins\pyconsole.so

pyconsole.soこの特定のインスタンスが自分のインスタンスを開いて使用できるように、場所を知らせるための標準または慣用的な方法はありますかfoo_pycon.py

パッケージを介してインストールする場合、相対パスが異なる場合があります。インストールされたバイナリの場所と同様に、/usr/bin/fooプラグインを/usr/lib[64]/foo/plugins

ベストアンサー1

おすすめ記事