私は自分が実際にコントロールできない環境に座っています (それは私だけではないので、基本的に、環境を変更することはできません。また、他の誰のためにも機能しません)。私が影響を与えることができる唯一のことは、バイナリがビルドされます。
私の問題は、環境が、使用されているコンパイラと互換性のない libstdc++ を含む LD_LIBRARY_PATH を指定していることです。私はそれを静的にコンパイルしようとしましたが、それは g++ では可能ではないようです (バージョン 4.2.3 は、後のバージョンではこの方向で作業が行われたようですが、利用できない -static-libstdc++ など)。
これで、rpath を使用して絶対パス名を実行可能ファイルに焼き付けることができました (動作するはずです。動作するはずのすべてのマシンは同一です)。残念ながら、LD_LIBRARY_PATH が rpath よりも優先されるように見えます (LD_LIBRARY_PATH をリセットすると、ライブラリを見つけることができることが確認されましたが、上記のように、LD_LIBRARY_PATH は全員に設定され、私はそれを変更できません)。
rpath を LD_LIBRARY_PATH よりも優先させる方法はありますか、または私の問題に対する他の解決策はありますか? 実行時の動的リンクについて話していることに注意してください。コンパイルおよびリンク時にコマンドラインを制御できます。
ありがとう。