Linuxのライブラリ検索順番

Qtでコンパイルすると「libQtCore.so」や「libQtGui.so」などといった共有ライブラリを実行開始時に動的リンクして実行する.
私の環境では正規の(?)ライブラリディレクトリには古いQtライブラリが入っており,ホームディレクトリに自分でインストールした新しいQtライブラリをインストールしている.

自分のアカウント内ではパスとかを通してる(よく知らないけど通ってる,ってのが正しい)ので問題ないけれど,他アカウントから私の実行ファイルを実行しようとするとセグメンテーション違反になった.
調べてみるとどうも他のアカウントからでは私が自分でインストールしたQtライブラリをたどれずに,古いQtライブラリを動的リンクしてしまい,エラーになっているようだった.
共有ライブラリの依存状態を調べるには「ldd」コマンドで調べられた.

で,ライブラリを読んでくれるように試行錯誤した.
始めに実行ファイルと同じディレクトリに「ln」コマンドで私がインストールしたQtライブラリへシンボリックリンクを張ってみたがダメだった.
「cp」コマンドで.soファイルをそのままコピーして持ってきてもダメだった.

仕方ないので実行時のライブラリの検索順序を調べてみた.
それによると環境変数の「LD_LIBRARY_PATH」の順番で調べられるみたい.
だから「export LD_LIBRARY_PATH=○○:$LD_LIBRARY_PATH」みたいにLD_LIBRARY_PATHの最初に追記すればそちらの.soファイルをリンクしてくれる.
追記後にlddで調べると「libQtCore.so」などが自分のディレクトリのライブラリにリンクするように更新されているのが確認できた.(もちろん実行も可能になった)

windowsのdllだと同じフォルダに置いとけばよろしくリンクしてくれた気がしたので悩んでしまった.
あと/etc/ld.so.confに記述されたパスも検索するらしいけれど,そのあたりは検証してないから分からない.

環境変数「LD_LIBRARY_PATH」の順番で検索順番を指定したけれど,環境変数「LD_PRELOAD」にファイルを指定を指定する方法でもいいみたい.