私は共有ライブラリに応じてアプリケーションに失敗していることに気付きました。依存関係がない場合でも、ユーザーは依存関係の機能を使用する意思がない場合でもロード時にに失敗します。オプションの共有ライブラリ
私のアプリはそれより優れていると思います。理想的には、n個の異なるパッケージを配布するのではなく、 n = numberOfSupportedArchitectures * numberOfSupportedOS * Π(各共有ライブラリの場合) 「共有ライブラリの読み込み中にエラーが発生しました」という例外が発生するライブラリが必要ではないと思っているロード時に不在であることが判明した場合、関連の解決されていないリンクの使用を避けるだけの方法で実行を続行します。しかし、明らかに例外を捕まえることはできません。何かが見つからない場合、main()が起動する前にすべてが落ちます。
ローディングプロセスを制御できる最も近いのは、すべてのリンクをdlopen、dlsymなどで自分で解決することです。とても面倒です。私にはすでにそれができるライブラリがあると思いますか?
これは、ソースベースのディストリビューションやWindowsでは問題ではないことに注意してください。私はタグにバイナリパッケージを入れようとしていましたが、明らかに私はコインタグの担当者を持っていません。
'は、OSのローダー/リンカーの動作を改良する最も洗練されたソリューションのようです。
または、環境変数 'LD_LIBRARY_PATH'を設定するスクリプトでプログラムを実行してください。 – rodrigo
ライブラリをロードする代わりに、異なるバージョンのものだけでなく、まったく異なるインタフェースを持つか、まったくなくても提供する機能はUXには現れません。 これは、不在のライブラリを処理する手段を提供する可能性がありますが、私は不足しているターゲットと同じインタフェースを持つ不活性なshillライブラリを作成することができました。ターゲットが見つからない場合、リンカは何かにリンクする必要があります。しかし、愚かに見えます。 – mako