このページ - - http://labs.qt.nokia.com/2011/10/28/rpath-and-runpath/はld.soでライブラリ検索の順番についてこう述べています。その後、はRPATHを使用しますが、RUNPATHは使用しませんか?
Unless loading object has RUNPATH:
RPATH of the loading object,
then the RPATH of its loader (unless it has a RUNPATH), ...,
until the end of the chain, which is either the executable
or an object loaded by dlopen
Unless executable has RUNPATH:
RPATH of the executable
LD_LIBRARY_PATH
RUNPATH of the loading object
ld.so.cache
default dirs
とは、お勧め:
あなたはどちらかRPATHを使用していない実行パスまたは LD_LIBRARY_PATHを確保するため、バイナリを出荷
実行前に設定されます。
RUNPATH
種類-のはRPATH
ので、間接的な動的ロードをキャンセル期待通りに動作しないので、だから、RUNPATH
でRPATH
を使用して悪いのですか?しかし、なぜRPATH
が非難されてRUNPATH
になったのですか?
誰かが状況を説明できますか?
問題は、RPATHよりもRUNPATHが推奨され、RPATHは推奨されていませんが、現在RUNPATHはすべてのシステムでサポートされていません。私は今日**アプリケーションの作業をするために何をしていますか? Qtの記事にあるように、プラグインを使うときはRATHPATH以上のRPATHを使うと便利です。ここでは状況が非常に混乱しています – zaharpopov
@ zaharpopov、私がお勧めしたいと思う最良のアプローチは、ターゲットプラットフォームにうまく統合されたアプリケーションを生成することです。これには、プラットフォームの競合バージョンを配布しない共有ライブラリ*。私はこれが問題の根源だと思って、DT_RPATHの周りにハックとスラッシュを入れ、友人はそれを解決する代わりに問題を横取りしようとする間違った方向の努力です。 – chill
これは簡単ではありません。 Qtの問題は、Qtライブラリの新しいバージョンがシステム上に存在するよりも必要だったということでした。いくつかのシステムではQt SOが古くなっていますので、どうしたらいいですか?私はあなたが特定のバージョン – zaharpopov